python簡單易學,但又博大精深。許多人號稱精通python,卻不會寫pythonic的**,對很多常用包的使用也並不熟悉。學海無涯,我們先來了解一些python中最基本的內容。
python的特點
解釋型語言,無需編譯即可執行
提供了互動式命令列
基於物件的程式設計思想
跨平台和良好的相容性,在windows、mac、linux上都可執行
簡單好用而且功能強大
中文編碼
很多同學在開啟資料時會遇上亂碼問題,其原因是字符集的編碼問題。linux和mac預設的編碼集是utf8,而windows則是ascii。如果資料編碼的字符集,和你使用python進行處理時所用的字符集不同,則會出現亂碼問題。
另外,我個人的習慣是在python**的頭部加入以下內容,其中第二行宣告了使用utf8字符集。
#!/usr/bin/env python# coding:utf8
變數python中的變數可以看作是乙個個容器,裡面存放著我們需要使用到的值。
python對變數名的要求和其他語言一樣:可以包括英文、數字以及下劃線,但不能以數字開頭,區分大小寫。當然我推薦,變數名用純英文就很好,並且取一些有意義的名稱,便於自己理解每個變數的作用。
python是一門弱型別的語言,在使用變數時無需宣告其型別。python中的變數包括以下幾類:數值、字串、列表、元組、字典。
數值數值包括整型和浮點型,分別對應整數和浮點數,後者精度更高。
字串字串也就是我們經常接觸到的文字,可以往裡面放任意長度的內容,用單引號或雙引號括起來。應當注意,中文以及中文符號只能出現在字串內,如果在下面第三行中使用了中文輸入法的逗號 ,python將報錯。
使用 + 可以拼接兩個字串。
print(c + d)
使用 len() 可以得到字串的長度。
print(len('hello world'))
使用切片可以訪問字串中的某個字元或某個片段。
列表列表好比一條隊伍,裡面依次存放著多個變數。列表和字串類似,但字串中的每個元素都是字元,而列表中的每個元素可以是任意型別的變數。
使用 len() 可以獲得列表的長度。
print(len(a))
列表元素的按下標訪問和賦值等操作,和字串都是類似的。
使用 del 刪除列表中的某個元素。
dela[0]
print(a)
06 元組
元組和列表類似,唯一的不同是元組中的元素在初始化之後不能再更改,因此可以理解成乙個唯讀的變數。
字典字典是一種極為重要的變數型別,使用乙個key來訪問相應的value,即一種鍵值對的資料形式。
所以能夠總結出字典和列表的不同。列表中的元素是有序對等的,所以是用下標來賦值和訪問,而字典中的元素是無序的,所以是用key來操作相應的value。
使用 has_key() 判斷字典中是否有某個key。
print(di.has_key('k4'))
如果訪問不存在的key,python將會報錯。在賦值的時候,如果key已經存在,則會用新的value覆蓋已有的value。
注釋被注釋的**將不會執行,可以看作是寫給自己和其他程式猿閱讀的一些筆記和說明,提高**可讀性。
# 這裡是單行注釋'''這裡是很多行注釋'''
在sublime中,選中需要注釋的內容,按ctrl+/即可完成注釋。
保留字元
在python中,有一些字串具有某些特定功能,如 import 、 class 等。我們在選擇變數名時,應注意避開這些保留字元。
# 以下變數賦值將報錯import = 1
行和縮排
在python中,**塊的邊界不是通過大括號等符號進行顯式劃分,而是通過行的縮排實現的。連續相同縮排水平的**處於同乙個**塊,在使用 for 、 while 、 if 、 try 等語法時需要注意每行**的縮排。
運算子運算子的作用是根據已有的變數生成新的變數,主要有以下幾種:
算術運算子:+,-,,/,%,即加、減、乘、除、取餘
比較運算子:==,!=,>,<,>=,<=,即等於、不等於、大於、小於、大於等於、小於等於
賦值運算子:=,+=,-=,=,/=,%=,即賦值、加賦值、減賦值、乘賦值、除賦值、取餘賦值
邏輯運算子:and,or,not,即與、或、非
條件在寫**的時候,往往需要根據某些條件進行判斷,並根據判斷結果執行不同的分支**。
需要注意的是,但凡出現了 if 和 elif ,就需要加上相應的條件判斷,並且注意**的縮排。在sublime中輸入 if 會出現相應的提示,可以方便地補全**,在換行時游標也會自動跳到合適的縮排處。
迴圈如果需要列印從1到100的100個數,肯定不會傻傻地寫100行print**,而是會用迴圈來處理類似的重複性工作。
while 迴圈
while 迴圈的思想是,只要某一條件成立,就不斷執行迴圈體裡的**,直到條件不再成立。
for 迴圈
for 迴圈的迴圈次數一般是事先預知的,將乙個標誌變數從某個起始值迭代到某個終止值後即結束。
可以用 for 迴圈方便地遍歷列表和字典
迴圈控制
迴圈控制主要包括三種: pass 、 continue 、 break 。pass 表示什麼也不做,只是佔一行**的位置;continue 表示立即退出本輪迴圈,繼續執行後續輪迴圈;break 表示立即退出迴圈,後續迴圈也不再執行。
時間在處理資料時,很多地方都會涉及到時間,例如資料產生的時間。先介紹一下時間戳的概念,時間戳指的是從2023年1月1日0時0分0秒開始,到某一時刻所經歷的秒數,可以是整數或者小數,後者的精度更高。
為什麼需要時間戳這樣的乙個概念?因為對於同乙個時刻,不同人的描述可能不同,畢竟文字的形式千變萬化,而時間戳使得時間的表達得到了統一,每個時刻只能用唯一的整數或浮點數來表示,同時也便於計算時間差這樣的處理。
關於時間戳,最常用的處理便是時間戳和時間文字之間的轉換,例如將 2023年10月1日 10時0分0秒 轉為時間戳。
其中, %y 、 %m 等都是時間字段,前者表示四位的年份,後者表示兩位的月份。
18 檔案
檔案操作包括向檔案中寫內容,以及從檔案中讀內容,使用 open() 開啟乙個檔案。
異常python**中可能會出現一些可以預知的問題,例如字典訪問的key不存在。如果不加處理,發生問題的時候python便會報錯並退出,可能之前跑了很久又要重頭再來。因此,我們需要對可能出現的異常進行捕捉和處理。異常的結構由 try 、 except 、 else 、 finally 四部分組成。
函式函式的作用是**模組化,將可重用的**封裝成乙個函式,這樣在需要使用的時候就只需呼叫寫好的函式即可,而不用重新寫一遍**。
函式的使用包括兩個部分,函式的定義和函式的呼叫。除此之外,函式可以有乙個或多個引數,引數之間以逗號分開,為函式的功能提供更多的靈活性。
弄懂這20個問題再炒股!
假如你有100萬,收益100 後資產達到200萬,如果接下來虧損50 則資產回到100萬,顯然虧損50 比賺取100 要容易得多。1.關於收益率 假如你有100萬,收益100 後資產達到200萬,如果接下來虧損50 則資產回到100萬,顯然虧損50 比賺取100 要容易得多 2.關於漲跌停 假如你有...
Python 這10個字典操作你必須知道
嗯,乾貨必須收藏 使用in關鍵字判斷key是否存在字典中 d key gender if key in d pass不要使用key in d.keys 這是一種畫蛇添足的操作,因為d.keys 會返回乙個新的列表物件,導致記憶體最大。x y 返回新的字典物件,x和y都不會改變,這是使用了pep448...
Python這10個字典操作你必須知道
實際上,大資料的應用程式需要處理大量資訊,並且在出自彈性的考慮將資料拷貝到多個部位時,資訊的規模變得越來越大。可是,大資料的最關鍵屬性並非在於它的規模,而在於它將大作業切分成很多小作業的能力,它才能將解決一兩個任務的資源細化到好幾個位置變成並行處理。在將大規模和分布式架構組合合為一體時,人們就能發覺...