python入門知識總結

學習python第一步是創建環境:我是用的是anconda和jupyter notebook,都是按照猴哥的教程一步步完成的,python的版本是3.6 。其實我每一部分之前都寫了一個小總結,這篇其實就是每個部分我覺得比較重要的部分。

不多廢話,直接開始總結

一、python變數的定義:

之前有過一些java基礎,定義時候會規定變數類型。但是python不需要,但是為了方便閱讀,我會按照猴哥說的定義方法——在變數名字中加上類型。

#首先是跟python打個招呼In [2]:print("Hello Python")Hello Python#變數中只能包括字母、數字、下劃線,並且不能以數字開頭In [6]:nameStr = 馬雲 print(nameStr)馬雲

二、python的數據類型(思維導圖):

如果想要知道python中某一個變數的數據類型,可以使用函數type(),很方便。

(1)number類型:

  1. 整型:int(沒有細分,只有int一種)
  2. 浮點型:float(沒有java中的double類型,因為float已經相當與double的取值範圍了)
  3. 複數類型:1+2j或者complex(1,2)

對於number類型的計算,加減乘中只要存在浮點數,最後結果就是浮點數類型。如果是除法用 / 表示,/得到的結果是浮點數,//才能得到整型。

In [13]:print(/的結果+ str(2/2))print(//的結果+str(2//2))/的結果1.0//的結果1

圖中例子也用到了python數據類型之間的轉換方法,python字元串類型與number直接不能直接連接,也就是float不會像java中自動轉換為str。

之所以把bool類型也划到number中,是因為它方便和number中其他類型進行轉換(基本就等同於0和1兩個數),基本非0就為真,空或者0就為負。

(2).字元串類型(str):

python對於大小寫敏感,但是對於單雙引號沒有特殊要求,可以按個人喜好使用,但是必須成對出現。

『lets go』是錯誤的因為引號都是要成對出現的,有兩種改進的方式

"lets go"--------"lets go"let"s go--------let"s golets go-------"lets go"

python中字元串就像是一個字元的集合,像集合一樣可以索引:

>>> "hello world"[1:6]ello >>> "hello world"[0:-1]hello worl>>> "hello world"[0:]hello world>>> #這裡輸入-1,因為第二個索引對應的元素不算在內,所以採用上邊的輸入方式hello world[2:9:2]lowr

字元串還有一種特殊的初始化方法,對應的比較多,這裡不做列舉

print("我叫 %s 今年 %d 歲" %(my, 22))我叫 my 今年 22 歲print("num: %.2f" %num)num: 12.44

(3)列表的表示方法和使用:

[1,2,3]或者[『hello』,2]列表裡邊的數據類型可以是只有一種,或者是字元串和數字任意類型的結合,甚至列表內部元素也可以是列表(嵌套列表),這是跟java完全不同的。

[q,w,e,r][0] q[q,w,e,r][3] r[q,w,e,r][0:2] [q, w][q,w,e,r][-1:] [r]

索引的使用類似於字元串中的索引的使用,但是很關鍵的點在於,索引如果是單個的數字的話,得到的就是字元串,反之得到的就是序列,這點很關鍵。

(4)元組基本現在看來與序列差別不大

(5)Set集合

之前講了序列,特點是有序,可重複的,接下來是與之完全相反的Set集合。

因為無序,也就沒有索引,所以不能通過索引的方式來查找元素,但是Set也有一些獨有的特點。

>>> {1,2,1,2,}{1, 2}>>> 1 in {1,2,3}True>>> {1,2,3,4,5,6}-{1,2}{3, 4, 5, 6}#交集>>> {1,2,3,4,5,6}&{1,2}{1, 2}#並集>>> {1,2,3,4,5,6}|{1,2,8}{1, 2, 3, 4, 5, 6, 8}

不同於序列,Set空集的命名方式不同。

>>> type({})<class dict>>>> type(set())<class set>>>> len(set())0

(6)字典

>>> {q:新月打擊,w:蒼白之瀑,e:月之降臨,r:月神衝刺}{q: 新月打擊, w: 蒼白之瀑, e: 月之降臨, r: 月神衝刺}>>> {q:新月打擊,w:蒼白之瀑,e:月之降臨,r:月神衝刺}[q]新月打擊>>> {q:新月打擊,q:蒼白之瀑,e:月之降臨,r:月神衝刺}[q]蒼白之瀑>>> {q:新月打擊,q:蒼白之瀑,e:月之降臨,r:月神衝刺}{q: 蒼白之瀑, e: 月之降臨, r: 月神衝刺}>>> {1:新月打擊,1:蒼白之瀑,e:月之降臨,r:月神衝刺}{1: 新月打擊, 1: 蒼白之瀑, e: 月之降臨, r: 月神衝刺}>>> {[1,2]:新月打擊,q:蒼白之瀑,e:月之降臨,r:月神衝刺}Traceback (most recent call last): File "<pyshell#4>", line 1, in <module> {[1,2]:新月打擊,q:蒼白之瀑,e:月之降臨,r:月神衝刺}TypeError: unhashable type: list

字典的訪問方式是通過key值,並且key是不能重複的,value是可以重複的,重複的 key值對應的value是最後一個key對應的value。並且key必須是不可變的類型。

三、條件控制語句

if和else往往是一塊使用的,所以產生了elif語句,又因為python沒有switch語句,所以elif往往可以起到代替switch語句,case1,case2的作用。

age = int(input("請輸入你家狗狗的年齡: "))print("")if age < 0: print("你是在逗我吧!")elif age == 1: print("相當於 14 歲的人。")elif age == 2: print("相當於 22 歲的人。")elif age > 2: human = 22 + (age -2)*5 print("對應人類年齡: ", human) ### 退出提示input("點擊 enter 鍵退出")

四、循環語句

第一種循環方法:

gafataDict={騰訊:HK:00700,阿里巴巴:baba,蘋果:Apple, 谷歌::GOOGLE,Facebook:fb,亞馬遜:amzn}for key,value in gafataDict.items(): newValue=value.upper() gafataDict[key]=newValueprint(gafataDict){阿里巴巴: BABA, 谷歌: :GOOGLE, 蘋果: APPLE, 亞馬遜: AMZN, Facebook: FB, 騰訊: HK:00700}

python的for循環有點類似於java的增強for循環,比較直接便捷,但是沒有索引,只能遍歷,不能顯示對象中的所有的元素。為了解決這個問題,python引入了range()。

for i in range(5):... print(i)

同時我們也應該考慮比for更能代表python特點的一些表示方法:

A = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]print(len(A))for x in range(0, len(A), 2): print(A[x], end= | )#這是python自帶的列表的功能,相比較for循環來說就更直截了當B = A[0:len(A):2]print( )print(B)

五、函數

這其中字元串、數字、元組是不可變類型,其餘是可變類型。

def changeInt(a): a=a+1b=1print(調用函數之前b的值=,b)changeInt(a=b) print(調用函數之後b的值=,b)調用函數之前b的值= 1調用函數之後b的值= 1

這個例子是列表類型可變的說明

def changeList(inputList): inputList.append(奶茶妹妹)nameList=[馬雲,劉強東]print(調用函數之前的值:,nameList)changeList(inputList=nameList) print(調用函數之後的值:,nameList)調用函數之前的值: [馬雲, 劉強東]調用函數之後的值: [馬雲, 劉強東, 奶茶妹妹]

六、數據結構

python內建的集合Collections

1.雙向列表queue:先進先出

In [23]:from queue import dequequeue = deque([001, 002, 003, 004])queue.append(005)print(queue)queue.popleft()print(queue)deque([001, 002, 003, 004, 005])deque([002, 003, 004, 005])

棧(stack):

棧有點像木桶,加入對象都是在最頂層,出棧也是最後加入的對象

2.排序字典OrderedDict

3.計數器

對輸入的數據某些元素的個數進行統計

In [49]:from collections import CountercDict = Counter(有一種鳥是永遠也關不住的,因為他們的羽毛太光亮了。羽毛太光亮)In [51]:cDict[亮]Out[51]:2In [53]:cDict.most_common(3)Out[53]:[(亮, 2), (羽, 2), (的, 2)]

推薦閱讀:

Python3 CookBook | 字元串和文本
python中 from . import ×××的那個點是表示當前包嗎?
簡歷中如何證明自己的編程能力?
巧用抓包 ― 爬遍SCU玻璃杯事件所有神回復
遲來的第一篇文章。

TAG:Python | Python入门 |