Python 类型转换

更新于 2026-01-13

在编程中,类型转换是指将一种数据类型的数据转换为另一种数据类型的过程。例如:将 int(整数)类型的数据转换为 str(字符串)类型。

Python 中有两种类型的类型转换:

  • 隐式转换(Implicit Conversion):自动进行的类型转换
  • 显式转换(Explicit Conversion):手动进行的类型转换

Python 隐式类型转换

在某些情况下,Python 会自动将一种数据类型转换为另一种数据类型。这被称为隐式类型转换

示例 1:将整数转换为浮点数

让我们看一个例子,在这个例子中,Python 将较低的数据类型(整数)提升为较高的数据类型(浮点数),以避免数据丢失。

integer_number = 123
float_number = 1.23

new_number = integer_number + float_number

# 显示新值及其结果的数据类型
print("Value:", new_number)
print("Data Type:", type(new_number))

运行代码

输出

Value: 124.23
Data Type: <class 'float'>

在上面的例子中,我们创建了两个变量:integer_numberfloat_number,它们分别是 int 类型和 float 类型。

然后我们将这两个变量相加,并将结果存储在 new_number 中。

我们可以看到,new_number 的值是 124.23,其数据类型为 float

这是因为 Python 总是将较小的数据类型转换为较大的数据类型,以避免数据丢失。

注意:
如果我们尝试将 str(字符串)和 int(整数)相加,例如 '12' + 23,Python 会抛出 TypeError
在这种情况下,Python 无法使用隐式转换。
Python 为此类情况提供了解决方案,即显式转换


显式类型转换

显式类型转换中,用户将对象的数据类型转换为所需的数据类型。

我们使用内置函数如 int()float()str() 等来执行显式类型转换。

这种类型的转换也称为类型强制转换(Type Casting),因为用户主动“强制”(改变)了对象的数据类型。

示例 2:使用显式转换实现字符串与整数的相加

num_string = '12'
num_integer = 23

print("Data type of num_string before Type Casting:", type(num_string))

# 显式类型转换
num_string = int(num_string)

print("Data type of num_string after Type Casting:", type(num_string))

num_sum = num_integer + num_string

print("Sum:", num_sum)
print("Data type of num_sum:", type(num_sum))

运行代码

输出

Data type of num_string before Type Casting: <class 'str'>
Data type of num_string after Type Casting: <class 'int'>
Sum: 35
Data type of num_sum: <class 'int'>

在上面的例子中,我们创建了两个变量:num_stringnum_integer,它们分别具有 str 类型和 int 类型的值。

请注意以下代码:

num_string = int(num_string)

在这里,我们使用 int()num_string 执行了显式类型转换,将其从字符串类型转换为整数类型。

在将 num_string 转换为整数值之后,Python 就能够将这两个变量相加。

最终,我们得到了 num_sum 的值为 35,其数据类型为 int


关键要点总结

  • 类型转换 是指将一个对象从一种数据类型转换为另一种数据类型。
  • 隐式类型转换 由 Python 解释器自动执行。
  • Python 在隐式类型转换中会避免数据丢失。
  • 显式类型转换 也称为 类型强制转换(Type Casting),用户通过预定义的函数主动转换对象的数据类型。
  • 在类型强制转换过程中,由于强制将对象转换为特定数据类型,可能会发生数据丢失