每種語言都有各種數(shù)據(jù)類型淘讥。這就像在現(xiàn)實(shí)生活中,我們計(jì)數(shù)的時(shí)候需要用到數(shù)字堤如,在表述金額蒲列、重量、距離等需要精確計(jì)數(shù)時(shí)用到小數(shù)搀罢,在日常交談中要用文字蝗岖,等等。在計(jì)算機(jī)語言中榔至,為了表述不同的情況抵赢,也需要用到各種數(shù)據(jù)類型。
在 Python 主要有數(shù)值類型(int唧取, float)铅鲤,字符串類型,布爾型和空值枫弟。
整型 int
Python 中整型來表示整數(shù)邢享,正數(shù)或者負(fù)數(shù),沒有小數(shù)點(diǎn)淡诗。10 和 10.0 是兩種數(shù)據(jù)類型骇塘。
浮點(diǎn)數(shù) float
浮點(diǎn)數(shù)也就是我們常見的帶小數(shù)點(diǎn)的數(shù)字。之所以叫浮點(diǎn)數(shù)袜漩,是因?yàn)樾?shù)點(diǎn)的位置不固定绪爸,也就是浮動(dòng)的。
比如 10.01 可以寫為 1.001 * 10^1宙攻,也可以寫為 0.1001 * 10^2。
字符串 str
字符串是最常用的數(shù)據(jù)類型之一介褥,用引號(hào)包裹起來的就是字符串座掘。在 Python 中,引號(hào)可以是雙引號(hào)柔滔,也可以是單引號(hào)溢陪。但是不能混用。
同時(shí)也可以使用三對(duì)引號(hào)(單雙都可以)來標(biāo)記多行字符串睛廊。
>>> char = 'nemo' # 單引號(hào)
>>> char2 = "python" # 雙引號(hào)
>>> char3 = 'python" # 單雙引號(hào)混用形真,語法錯(cuò)誤
>>> char4 = 'this 's a pig' # 語法錯(cuò)誤,可以將外面的引號(hào)替換為雙引號(hào)超全,或者使用轉(zhuǎn)義符
>>> char5 = 'this \'s a pig'
Python 中還有很多關(guān)于字符串的操作咆霜,將在后續(xù)教程中詳細(xì)講解邓馒。
布爾型 bool
布爾型,只有兩個(gè)值蛾坯,就是我們通常說的真與假光酣,錯(cuò)與對(duì),是和否脉课。
在計(jì)算機(jī)語言中救军,通常使用布爾值來表示條件是否成立,條件成立則為 True倘零,不成立則為 False唱遭。
>>> 3 > 1
True
>>> 0 < 5
False
>>> 5 == '5'
False
空值 None
空值 None 是 Python 中的一種特殊數(shù)據(jù)類型,嚴(yán)格意義上來說也不算是一種數(shù)據(jù)類型呈驶〉ㄏ簦空值用來表示什么都沒有,空字符串不是空俐东,空的字符串也是字符串跌穗,而空值什么都不是。在其他語言或數(shù)據(jù)庫(kù)中用 null 表示虏辫。
常見于函數(shù)中蚌吸,當(dāng)函數(shù)沒有定義返回值的時(shí)候,默認(rèn)返回的就是 None砌庄。
判斷數(shù)據(jù)類型的常用函數(shù)
在 Python 中羹唠,用于判斷數(shù)據(jù)類型的函數(shù)主要有兩種,type()
和 isinstance()
娄昆。
type()
函數(shù)用于查看數(shù)據(jù)的類型:
>>> type(5)
<class 'int'>
>>> type(5.0)
<class 'float'>
>>> type('5')
<class 'str'>
isinstance()
用于判斷數(shù)據(jù)的類型佩微,符合返回True
,不符合返回False
:
>>> isinstance(5, int) # isinstance 需要兩個(gè)參數(shù)萌焰,第一個(gè)是值哺眯,第二個(gè)是類型
True
>>> isinstance('5', int)
False
>>> isinstance('5', str)
True
>>> isinstance(True, int)
True
>>> isinstance(True, bool)
True
這里有個(gè)現(xiàn)象isinstance(True, int)
也是符合的,我們上面說過 True
是布爾型扒俯,怎么int
型也是符合的呢奶卓?
其實(shí)布爾型是int
的一種,值只有 0 和 1 罷了撼玄。
>>> True == 1
True
>>> False == 0
True
數(shù)據(jù)類型轉(zhuǎn)換
不同的數(shù)據(jù)類型是可以互相轉(zhuǎn)換的夺姑。如果要轉(zhuǎn)為整數(shù)類型,可以使用int()
函數(shù)掌猛,如果轉(zhuǎn)為浮點(diǎn)型盏浙,可以使用float()
函數(shù), 如果轉(zhuǎn)為字符串類型,可以使用str()
函數(shù)废膘。
目標(biāo)類型 | 函數(shù) |
---|---|
int | int() |
str | str() |
float | folat() |
>>> int('15')
15
>>> int('15a') # 報(bào)錯(cuò)竹海,字符串轉(zhuǎn) int ,必須全部是十進(jìn)制的數(shù)字
ValueError: invalid literal for int() with base 10: '15a'
>>> int('1.1') # 報(bào)錯(cuò)殖卑,看似浮點(diǎn)數(shù)也不行站削,但是這個(gè)可以用 float 轉(zhuǎn)為浮點(diǎn)數(shù)
ValueError: invalid literal for int() with base 10: '1.1'
>>> float('1.1')
1.1
>>> float('11')
11.0
>>> str(100)
'100'
其余轉(zhuǎn)換情況可自行嘗試。
在 Python 中孵稽,任意的數(shù)據(jù)類型许起,都是對(duì)象!當(dāng)然菩鲜,還不止于此园细,在 Python 中所見皆對(duì)象。不過這句話現(xiàn)在不需要理解接校,先記住就好猛频。
本結(jié)思考
5 == 5.0,結(jié)果是什么蛛勉?為什么鹿寻?
5 is 5.0,結(jié)果是什么诽凌?為什么毡熏?