Python巩固基础02-基本数据类型之数据类型间的转换
在python中,数据类型转换分为隐式类型转换和显式类型转换,隐式类型转换即python自动进行的转换,一般发生在整数int
和浮点数float
之间。而显式类型转换则是无法进行自动转换,需要手动通过内置函数进行不同数据类型的转换。
隐式类型转换
>>> 3 + 8
11
>>> 3 + 8.1
11.1
显式类型转换
int(x, [base])
将x转换为十进制的整数(直接取整数部分,无四舍五入,相当于向下取整);base参数指定x是什么进制数,可选,默认为10;如果只有一个参数,x可以为数字或字符串,如果要指定base,x需要为字符串(字符串中需为数字)。
>>> int(3.9)
3
>>> int('34')
34
# 将八进制的12转换为十进制数
>>> int('12', 8)
10
>>> int('101', 2)
5
float(x)
,将x转换为浮点数,x可以为数字或字符串(字符串中需为数字)。
>>> float(5)
5.0
>>> float('18')
18.0
str(x)
将对象x转换为字符串,x可以为数字、list、tuple、dict、set。
>>> str(9)
'9'
>>> str([1, 2])
'[1, 2]'
>>> str({'a': 'm'})
"{'a': 'm'}"
>>> str({1, 2})
'{1, 2}'
eval(str)
计算出字符串中的有效表达式,返回该表达式。
>>> eval('{1, 2}')
{1, 2}
>>> eval('3+2')
5
tuple(s)
将s转换为一个元组,s需要为可迭代序列。
>>> tuple('hello')
('h', 'e', 'l', 'l', 'o')
>>> tuple({'a': 1, 'b': 2})
('a', 'b')
list(s)
将s转换为一个列表,s需要为可迭代序列。
>>> list('hello')
['h', 'e', 'l', 'l', 'o']
>>> list({'a': 1, 'b': 2})
['a', 'b']
set(s)
将s转换为集合,s需要为可迭代序列,会对s中的元素进行去重。
>>> set('hello')
{'h', 'e', 'l', 'o'}
>>> set({'a': 1, 'b': 2})
{'b', 'a'}
dict(d)
创建一个字典,d必须为键值对或可迭代对象。
# 关键字参数
>>> dict(x=1, y=2)
{'x': 1, 'y': 2}
# 可迭代对象
>>> dict([('a', 1), ('b', 2)])
{'a': 1, 'b': 2}
# 可迭代对象+关键字参数
>>> dict([('a', 1), ('b', 2)], c=3)
{'a': 1, 'b': 2, 'c': 3}
chr(i)
返回i对应的ascii字符,i为十进制或十六进制的数字。
>>> chr(97)
'a'
>>> chr(48)
'0'
>>> chr(0x30)
'0'
ord(c)
接收一个字符,返回对应的ascii数值,或者unicode数值,可以与chr(i)
配套使用。
>>> ord('a')
97
>>> ord('A')
65
>>> ord('0')
48
hex(x)
将整数转换为十六进制字符串,x只能为整数。
>>> hex(12)
'0xc'
>>> hex(16)
'0x10'
oct(x)
将整数转换为八进制字符串,x只能为整数。
>>> oct(8)
'0o10'
>>> oct(9)
'0o11'