Python的基礎語法
數據類型
在現實中,會根據事物的不同表現,進而可以進行相應的分類。例如,當去超市購物時,超市會根據商品
的不同特征分類:食品類,日常用品類,家用電器類……在學數學時,也可以對數值進行分類:整數,小數,
分數,復數……。同樣,在Python中,也可以根據數據的不同特征,對數值進行不同的分類。
在Python中,數據可以分為如下類型:
數值類型
整數類型(int)
浮點類型(float)
復數類型(complex)
布爾類型(bool)
序列類型
列表(list)
元組(tuple)
字符串(str)
字節(bytes)
映射類型(dict)
集合類型(set)
其他內置類型
鴨子類型
在Python中,嚴格來說,變量是不具有類型的,變量的類型完全取決於其所關聯的對象類型,這與其他
語言的差別較大(C,Java等)。因此,常習慣的稱Python的類型為“鴨子類型”,這是一種動態類型的體現。
說明:
1、由於變量必須要關聯一個具體的對象,才能確定變量的類型。因此,在定義變量時,不能只給出變量
的名字,必須要同時也給出變量所關聯的對象。
2、python2中還支持長整數類型(Long),在python3中取消。
整數類型
整數類型(int)是最常使用的類型。支持四種進制的表示
二進制(使用0b或0B前綴)
八進制(使用0o或0O前綴)
十進制(無前綴)
十六進制(使用0x或0X前綴,10 ~ 15使用a ~ f或A ~ F表示)
進制轉換
可以調用相應的函數,來對四種進制之間進行轉換。
bin() 其他進制轉換成二進制
oct() 其他進制轉換成八進制
int() 其他進制轉換成十進制
hex() 其他進制轉換成十六進制
分隔符
當數值較大時(尤其是二進制),對程序的可讀性會造成影響,此時,可以在數值之間使用
一個_進行分隔,從而提高程序的可讀性(Python3.6)。
布爾類型
布爾類型(bool)表示的是一種條件的判斷,具有兩個值:True與False。其中,True表示條件成立,
即為“真”,而False表示條件不成立,即為“假”。布爾類型是整數類型的子類型。實際上,True就是1,
False就是0。因而,也可以使用布爾類型參與數學上的運算,與使用1與0參與運算的結果是一樣的。
浮點類型
浮點類型(float)就是數學上的小數類型。例如:1.0,-2.5等,都是浮點類型。在進制表示上,浮點類
型僅支持十進制表示(這點不同於整數類型)。除了常規的表示方式外,浮點類型也可以使用數學上科學計
數法的形式表示,例如:
1.5e30
說明:
十進制的整數類型不能使用0開頭,但是浮點類型可以以0開頭。
浮點類型的特殊值
浮點類型具有兩個特殊值:NaN(Not A Number)與Infinity(無窮大),其中無窮大又可分為正無窮
(+Infinity)與負無窮(-Infinity)。可以通過float函數來獲得這些值。
NaN有一個特征,就是自己不等於自己,因此,不能通過==來判斷一個數值是不是NaN。
浮點數據類型的不精確性
在使用浮點類型時,需要留意,浮點類型在計算機中僅是近似的存儲,浮點類型是不精確的。因此,要避
免進行如下的操作:
1、避免數量級相差很大的浮點數之間進行運算。
2、避免進行等量的比較。
decimal 的使用
考慮到浮點類型的不確定性,因此,如果需要進行精確計算時,可以使用decimalmo模塊中的Decimal類
來實現,該類提供精確的浮點計算。
此外,也可以指定Decimal的計算精度,即計算結果最多保留的有效數字位數,默認為28位有效數字。
復數類型
Python中的復數類型(complex)類似於數學上的復數。含有虛部(使用j或J後綴)的數值為復數類型。
例如:
3 + 5j,-2 - 3j(數學中虛部後綴為i)。
復數分為實部與虛部兩個部分,可以通過real與imag屬性分別獲取復數的實部與虛部的值。
類型轉換
可以通過type函數獲取變量的類型,準確的講,應該是變量所關聯的對象的類型。
類型轉換函數
python提供了一些轉換函數,可以在不同的類型之間進行類型轉換。
int(value)
將數值類型或字符串轉換為整數(int)類型。如果沒有參數,返回0。
float(value)
將數值類型或字符串轉換成浮點(float)類型。如果沒有參數,返回0。
complex(real, imag)
根據實部和虛部(可選)創建一個復數。如果沒有參數,返回0j。
bool(value)
參數為真時,返回True,否則返回False。
註意:
1、盡管可以使用轉換函數進行類型轉換,但並非任意兩個類型之間都是能夠進行轉換的。
例如,復數類型就不能夠通過int或float轉換為整數或浮點類型。
2、此外,int函數還可以提供第二個參數,指定解析轉換時,使用的進制。此時,第一個參數
需要是字符串類型(或字節等類型),不能是數值類型。例如:
int("300",16)
則會根據16進制來解析300,最終函數返回的結果為768,而不是300。如果沒有指定第
二個參數,則默認為十進制。
Python的基礎語法