Python的數值類型
在python中,數字並不是一個真正的對象類型,而是一組類似類型的分類。這些主要包括整數,浮點數,布爾類型和復數。這些是相對來說比較常用的,復數一般都用在比較精密的科學計算中,還是主要看你的工作方向。當然除了以上四類還有一些其他細分的類型,如有理分數,固定精度的十進制數等。
整數
在python中整數常用的運算包括,加減乘除,乘方等。在python3.0之后一般整數與長整數已經合二為一。
In [17]: 3+4 #加 Out[17]: 7 In [18]: 5*9 #乘 Out[18]: 45 In [19]: 98-45 #減 Out[19]: 53 In [20]: 99/3 #除 Out[20]: 33.0 In [21]: 2**4 #乘方 Out[21]: 16
除此之外就是一些混合運算。這些運算往往有次序。
1 In [22]: 3*4+6 2 Out[22]: 18 3 4 In [23]: 3*(4+6) 5 Out[23]: 30
浮點數
在python中把帶小數點的數字都稱為浮點數。
1 In [26]: 3.2+4.6 2 Out[26]: 7.8 3 4 In [27]: 2*0.3 5 Out[27]: 0.6
另外有些時候會出現精度問題,這個問題的原因是硬件的限制。
1 In [28]: 0.2+0.1 2 Out[28]: 0.30000000000000004
布爾類型
想想這個問題,bool類型本來是一個數字,可是這個數字卻有兩個值,True和False(注意首字母必須為大寫),兩個值也分別代表1和0。
1 In [30]: type(True) 2 Out[30]: bool 3 4 In [31]: True==1 5 Out[31]: True 6 7 In [32]: True+1 8 Out[32]: 2 9 10 In [33]: True or False 11 Out[33]: True
復數
復數表示為兩個浮點數,並在虛部增加 j 或 J 的后綴。
1 In [34]: (3+2j)+3 2 Out[34]: (6+2j) 3 4 In [35]: 1j*1j 5 Out[35]: (-1+0j)
python的序列類型
python中的序列類型包括列表,字符串,元組等。
字符串
字符串在python可以用len()來求長度,字符串的索引下標從0開始,從左至右依次類推。
1 In [36]: s='python' 2 3 In [37]: len(s) 4 Out[37]: 6 5 6 In [38]: s[0] 7 Out[38]: 'p' 8 9 In [39]: s[5] 10 Out[39]: 'n'
在python中除了正向索引還可以反向索引。即從最右邊開始計算。
1 In [40]: s='python' 2 3 In [41]: s[-1] 4 Out[41]: 'n' 5 6 In [42]: s[-2] 7 Out[42]: 'o' 8 9 In [43]: s[len(s)-1] 10 Out[43]: 'n'
切片
切片的原則是取前不取后,左閉右開的原則,其標准形式為 [start:stop:step]。
1 In [48]: s='python' 2 3 In [49]: s[0:4] 4 Out[49]: 'pyth' 5 6 In [50]: s[:4] 7 Out[50]: 'pyth' 8 9 In [51]: s[:] 10 Out[51]: 'python' 11 12 In [52]: s[3:] 13 Out[52]: 'hon' 14 15 In [53]: s[0:6:2] 16 Out[53]: 'pto'
列表
列表是一個任意類型的對象的位置相關的有序集合。其大小是可變的。列表同樣可以進行索引和切片的操作。
1 In [54]: l=[123,'python',456,'hello'] 2 3 In [55]: len(l) 4 Out[55]: 4 5 6 In [56]: l[2] 7 Out[56]: 456 8 9 In [57]: l[:2] 10 Out[57]: [123, 'python'] 11 12 In [58]: l+[7,8,9] 13 Out[58]: [123, 'python', 456, 'hello', 7, 8, 9] 14 15 In [59]: l 16 Out[59]: [123, 'python', 456, 'hello']
列表還有一些特定的操作,列表的增加和減少。
1 In [60]: l=[123,'python',456,'hello'] 2 3 In [61]: l.append('789') 4 5 In [62]: l 6 Out[62]: [123, 'python', 456, 'hello', '789'] 7 8 In [63]: l.pop(2) 9 Out[63]: 456 10 11 In [64]: l 12 Out[64]: [123, 'python', 'hello', '789']
列表的排序sort(),反轉reverse()。
1 In [65]: l=['aaa','sss','ddd'] 2 3 In [66]: l 4 Out[66]: ['aaa', 'sss', 'ddd'] 5 6 In [67]: l.sort() 7 8 In [68]: l 9 Out[68]: ['aaa', 'ddd', 'sss'] 10 11 In [69]: l.reverse() 12 13 In [70]: l 14 Out[70]: ['sss', 'ddd', 'aaa']
元組
元組對象tuple,就像一個不可改變的列表。
1 In [76]: t=(1,2,3,4) 2 3 In [77]: len(t) 4 Out[77]: 4 5 6 In [78]: t[3] 7 Out[78]: 4 8 9 In [79]: t+(6,7) 10 Out[79]: (1, 2, 3, 4, 6, 7) 11 12 In [80]: t.index(2) 13 Out[80]: 1 14 15 In [81]: t.count(3) 16 Out[81]: 1
拆包
1 In [86]: li=[1,3,5] 2 3 In [87]: x,y,z=li 4 5 In [88]: x 6 Out[88]: 1 7 8 In [89]: y 9 Out[89]: 3 10 11 In [90]: z 12 Out[90]: 5
1 In [91]: li=[1,3,5] 2 3 In [92]: x,*y=li 4 5 In [93]: x 6 Out[93]: 1 7 8 In [94]: y 9 Out[94]: [3, 5]
1 In [95]: li=[1,3,5] 2 3 In [96]: x,y=li 4 --------------------------------------------------------------------------- 5 ValueError Traceback (most recent call last) 6 <ipython-input-96-cdbda8c19b71> in <module>() 7 ----> 1 x,y=li 8 9 ValueError: too many values to unpack (expected 2)