Python基礎(一):數值類型,序列類型


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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM