类型转换与类型判断

内置函数bin()、oct()、hex()用来将整数转换为二进制、八进制和十六进制形式,这三个函数都要求参数必须为整数。

>>>bin(555)                      #把数字转换为二进制串

'0b1000101011'

>>>oct(555)                      #转换为八进制串

'0o1053'

>>>hex(555)                      #转换为十六进制串

'0x22b'

内置函数float()用来将其他类型数据转换为实数,complex()可以用来生成复数。

>>> float(3)                       #把整数转换为实数

3.0

>>> float('3.5')                   #把数字字符串转换为实数

3.5

>>> float('inf')                   #无穷大,其中inf不区分大小写

inf

>>> complex(3)                     #指定实部

(3+0j)

>>> complex(3, 5)                  #指定实部和虚部

(3+5j)

>>> complex('inf')                 #无穷大

(inf+0j)

ord()和chr()是一对功能相反的函数,ord()用来返回单个字符的Unicode码,而chr()则用来返回Unicode编码对应的字符,str()则直接将其任意类型参数转换为字符串。

>>> ord('a')           #查看指定字符的Unicode编码

97

>>> chr(65)            #返回数字65对应的字符

'A'

>>> chr(ord('A')+1)    #Python不允许字符串和数字之间的加法操作

'B'

>>> chr(ord('国')+1)   #支持中文

'图'

>>> ord('董')          #这个用法仅适用于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()用来把其他类型的数据转换成为列表、元组、字典、集合,或者创建空列表、空元组、空字典和空集合。

>>> list(range(5))               #把range对象转换为列表

[0, 1, 2, 3, 4]

>>> tuple(_)                     #一个下划线表示上一次正确的输出结果

(0, 1, 2, 3, 4)

>>> dict(zip('1234',

'abcde'))   #创建字典

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

'1': 'a'}

>>> set('1112234')               #创建可变集合,自动去除重复

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

内置函数type()和isinstance()可以用来判断数据类型,常用来对函数参数进行检查,可以避免错误的参数类型导致函数崩溃或返回意料之外的结果。

>>> type(3)                                 #查看3的类型

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

>>> type({3}) in (list, tuple, dict)        #判断{3}是否为list,tuple或dict类型的实例

False

>>> type({3}) in (list, tuple, dict,set)   #判断{3}是否为list,tuple,dict或set的实例

True

>>> isinstance(3, int)                      #判断3是否为int类型的实例

True

>>> isinstance(3j, int)

False

>>> isinstance(3j,

(int,float, complex))  #判断3是否为int,float或complex类型

True

内置函数eval()用来计算字符串的值,在有些场合也可以用来实现类型转换的功能。

>>> eval('3+5')

8

>>> eval('9')                  #把数字字符串转换为数字

9

>>> eval('09')                 #抛出异常,不允许以0开头的数字

SyntaxError: invalid token

>>> int('09')                  #这样转换是可以的

9

>>> list(str([1, 2, 3, 4]))    #字符串中每个字符都变为列表中的元素

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

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

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

[1, 2, 3, 4]

你可能感兴趣的:(类型转换与类型判断)