类型转换
将对象的数据类型从一种类型转换为另一种类型的过程称为类型转换 (Type Casting) 或类型转换 (Type Conversion)。
Python 中支持的两种类型转换是:
隐式类型转换
当评估表达式以确定最终数据类型时,Python 解释器会自动转换数据类型,无需用户干预。
在下面的示例中,c
的最终类型由 Python 解释器自动确定为 float
。
python
>>> a = 1 # int
>>> b = 2.0 # float
>>> c = a + b
>>> c
3.0
>>> type(c)
<class 'float'>
显式类型转换
当用户使用 Python 中可用的各种内置函数显式指定类型转换时,称为显式类型转换。
可用于显式类型转换的内置函数如下:
1. int()
从包含整数个字符(带或不带符号)的 bool
、float
或 str
创建一个 int
。
python
>>> int(True)
1
>>> int(2.3)
2
>>> int("2")
2
2. float()
从包含浮点数字面量(带或不带符号)的 bool
、int
或 str
创建一个 float
。
python
>>> float(True)
1.0
>>> float(2)
2.0
>>> float("2.3")
2.3
float()
也接受以下字符串输入 -
"Infinity"
(无穷大)"inf"
(无穷大)"nan"
(非数字)。
python
>>> float("Infinity") > 1
True
>>> float("nan")
nan
浮点数字面量还可以包含以下字符 -
.
,表示数字的小数部分。e
或E
,表示数字的指数部分。
python
>>> float("3.14")
3.14
>>> float("10.")
10.0
>>> float("1e100")
1e+100
>>> float("3.14e-10")
3.14e-10
3. str()
将任何对象转换为 str
。
python
>>> str(2)
'2'
>>> str([1, 2, 3, 4])
'[1, 2, 3, 4]'
4. tuple()
从类型为 str
、list
、set
或 range
的可迭代对象创建一个 tuple
。
python
>>> tuple('hello')
('h', 'e', 'l', 'l', 'o')
>>> tuple([1, 2, 3, 4])
(1, 2, 3, 4)
>>> tuple(range(6))
(0, 1, 2, 3, 4, 5)
5. list()
从类型为 str
、tuple
、set
或 range
的可迭代对象创建一个 list
。
python
>>> list('hello')
['h', 'e', 'l', 'l', 'o']
>>> list({1, 2, 3, 4})
[1, 2, 3, 4]
>>> list(range(6))
[0, 1, 2, 3, 4, 5]
6. set()
从类型为 str
、tuple
、list
或 range
的可迭代对象创建一个 set
。
python
>>> set('hello')
{'o', 'e', 'l', 'h'}
>>> set([1, 2, 3, 4])
{1, 2, 3, 4}
>>> set(range(6))
{0, 1, 2, 3, 4, 5}