類型轉(zhuǎn)換與類型判斷

內(nèi)置函數(shù)bin()、oct()、hex()用來將整數(shù)轉(zhuǎn)換為二進(jìn)制、八進(jìn)制和十六進(jìn)制形式,這三個(gè)函數(shù)都要求參數(shù)必須為整數(shù)。

>>>bin(555)????????????????????? #把數(shù)字轉(zhuǎn)換為二進(jìn)制串

'0b1000101011'

>>>oct(555)????????????????????? #轉(zhuǎn)換為八進(jìn)制串

'0o1053'

>>>hex(555)????????????????????? #轉(zhuǎn)換為十六進(jìn)制串

'0x22b'

內(nèi)置函數(shù)float()用來將其他類型數(shù)據(jù)轉(zhuǎn)換為實(shí)數(shù),complex()可以用來生成復(fù)數(shù)。

>>> float(3)?????????????????????? #把整數(shù)轉(zhuǎn)換為實(shí)數(shù)

3.0

>>> float('3.5')?????????????????? #把數(shù)字字符串轉(zhuǎn)換為實(shí)數(shù)

3.5

>>> float('inf')?????????????????? #無窮大,其中inf不區(qū)分大小寫

inf

>>> complex(3)???????????????????? #指定實(shí)部

(3+0j)

>>> complex(3, 5)????????????????? #指定實(shí)部和虛部

(3+5j)

>>> complex('inf')???????????????? #無窮大

(inf+0j)

ord()和chr()是一對(duì)功能相反的函數(shù),ord()用來返回單個(gè)字符的Unicode碼,而chr()則用來返回Unicode編碼對(duì)應(yīng)的字符,str()則直接將其任意類型參數(shù)轉(zhuǎn)換為字符串。

>>> ord('a')?????????? #查看指定字符的Unicode編碼

97

>>> chr(65)??????????? #返回?cái)?shù)字65對(duì)應(yīng)的字符

'A'

>>> chr(ord('A')+1)??? #Python不允許字符串和數(shù)字之間的加法操作

'B'

>>> chr(ord('國(guó)')+1)?? #支持中文

'圖'

>>> ord('董')????????? #這個(gè)用法僅適用于Python 3.x

33891

>>> str(1234)????????????????????? #直接變成字符串

'1234'

>>> str([1,2,3])

'[1, 2, 3]'

>>> str((1,2,3))

'(1, 2, 3)'

>>> str({1,2,3})

'{1, 2, 3}'

list()、tuple()、dict()、set()用來把其他類型的數(shù)據(jù)轉(zhuǎn)換成為列表、元組、字典、集合,或者創(chuàng)建空列表、空元組、空字典和空集合。

>>> list(range(5))?????????????? #把range對(duì)象轉(zhuǎn)換為列表

[0, 1, 2, 3, 4]

>>> tuple(_)???????????????????? #一個(gè)下劃線表示上一次正確的輸出結(jié)果

(0, 1, 2, 3, 4)

>>> dict(zip('1234',

'abcde'))?? #創(chuàng)建字典

{'4': 'd', '2': 'b', '3': 'c',

'1': 'a'}

>>> set('1112234')?????????????? #創(chuàng)建可變集合,自動(dòng)去除重復(fù)

{'4', '2', '3', '1'}

內(nèi)置函數(shù)type()和isinstance()可以用來判斷數(shù)據(jù)類型,常用來對(duì)函數(shù)參數(shù)進(jìn)行檢查,可以避免錯(cuò)誤的參數(shù)類型導(dǎo)致函數(shù)崩潰或返回意料之外的結(jié)果。

>>> type(3)???????????????????????????????? #查看3的類型

<class 'int'>

>>> type([3])?????????????????????????????? #查看[3]的類型

<class 'list'>

>>> type({3}) in (list, tuple, dict)??????? #判斷{3}是否為list,tuple或dict類型的實(shí)例

False

>>> type({3}) in (list, tuple, dict,set)?? #判斷{3}是否為list,tuple,dict或set的實(shí)例

True

>>> isinstance(3, int)????????????????????? #判斷3是否為int類型的實(shí)例

True

>>> isinstance(3j, int)

False

>>> isinstance(3j,

(int,float, complex))??#判斷3是否為int,float或complex類型

True

內(nèi)置函數(shù)eval()用來計(jì)算字符串的值,在有些場(chǎng)合也可以用來實(shí)現(xiàn)類型轉(zhuǎn)換的功能。

>>> eval('3+5')

8

>>> eval('9')????????????????? #把數(shù)字字符串轉(zhuǎn)換為數(shù)字

9

>>> eval('09')???????????????? #拋出異常,不允許以0開頭的數(shù)字

SyntaxError: invalid token

>>> int('09')????????????????? #這樣轉(zhuǎn)換是可以的

9

>>> list(str([1, 2, 3, 4]))??? #字符串中每個(gè)字符都變?yōu)榱斜碇械脑?/p>

['[', '1', ',', ' ', '2', ',', '

', '3', ',', ' ', '4', ']']

>>> eval(str([1, 2, 3, 4]))??? #字符串求值

[1, 2, 3, 4]

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容