跳至内容

Python类型转换

Python类型转换是将数据的 原有类型 转换为 另一种类型

包括两种转换方式:

  • 隐式转换 - 自动类型转换
  • 显式转换 - 手动类型转换

隐式转换

某些场景下,Python会自动将一种类型转换为其他类型。这就叫隐式转换。

例如

输入

python
integer_number = 124
float_number = 1.23

hybrid_number = integer_number + float_number
print("变量hybrid_number值:", hybrid_number)
print("变量hybrid_number类型:", type(hybrid_number))
integer_number = 124
float_number = 1.23

hybrid_number = integer_number + float_number
print("变量hybrid_number值:", hybrid_number)
print("变量hybrid_number类型:", type(hybrid_number))

输出

变量hybrid_number值:125.23
变量hybrid_number类型:<class 'float'>
变量hybrid_number值:125.23
变量hybrid_number类型:<class 'float'>

这里,整型值和浮点值求和,Python为了避免精度损失,对整型值进行了向上转换(更高精度的类型)。其结果为浮点型

提示

  • 如果对 strint 求和,将会得到 TypeError. 这种情况Python没办法隐式转换。

显式转换

显示类型转换是用户将对象的原有类型转换为所需的类型。通过内置函数 int() , float() , str() 等函数来转换

例如

输入

python
num_int = 13
num_str = '12'
print("转换前num_str的类型:", type(num_str))
num_str = int(num_str)
print("转换后num_str的类型:", type(num_str))

num_sum = num_str + num_int
print("num_sum值:", num_sum)
print("num_sum类型:", type(num_sum))
num_int = 13
num_str = '12'
print("转换前num_str的类型:", type(num_str))
num_str = int(num_str)
print("转换后num_str的类型:", type(num_str))

num_sum = num_str + num_int
print("num_sum值:", num_sum)
print("num_sum类型:", type(num_sum))

输出

转换前num_str的类型:<class 'str'>
转换后num_str的类型:<class 'int'>
num_sum值:25
num_sum类型:<class 'int'>
转换前num_str的类型:<class 'str'>
转换后num_str的类型:<class 'int'>
num_sum值:25
num_sum类型:<class 'int'>

这里,有两种类型的值求和,int型的num_int,字符串型的num_str。通过 int() 转换函数完成显式类型转换。

关键知识点

  • 类型转换是将对象数据类型转为另外一种数据类型

  • 隐式转换由Python解释器自动执行

  • 隐式转换时,Python会避免精度损失

  • 显式转换时,强制转换为特点类型,可能会损失精度。