跳到主要内容

Python 类型转换

提示
  1. 类型转换概念:在 Python 中,类型转换指的是将数据从一种类型转换到另一种类型,例如从 int 转换为 str
  2. 隐式与显式转换:隐式转换由 Python 自动完成,无需用户干预;显式转换需要用户使用特定函数手动执行,例如 int()float()
  3. 数据类型适配:在进行类型转换时,重要的是确保数据类型相容,以避免像 strint 相加时出现的错误。

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

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

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

Python 隐式类型转换

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

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

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

integer_number = 123
float_number = 1.23

new_number = integer_number + float_number

# 显示新值和结果数据类型
print("值:",new_number)
print("数据类型:",type(new_number))

输出

: 124.23
数据类型: <class 'float'>

在上面的例子中,我们创建了两个变量:integer_number 和 float_number,分别为 intfloat 类型。

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

可以看到 new_number 的值为 124.23,并且是 float 数据类型。

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

注意:

  • 如果我们尝试添加 strint,我们会得到 TypeError。例如,'12' + 23。在这种情况下,Python 无法使用隐式转换。
  • Python 为这类情况提供了解决方案,称为显式转换。

显式类型转换

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

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

这种类型的转换也被称为类型铸造,因为用户改变(转换)了对象的数据类型。

示例 2:使用显式转换进行字符串和整数的相加

num_string = '12'
num_integer = 23

print("num_string 在类型铸造前的数据类型:",type(num_string))

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

print("num_string 在类型铸造后的数据类型:",type(num_string))

num_sum = num_integer + num_string

print("和:",num_sum)
print("num_sum 的数据类型:",type(num_sum))

输出

num_string 在类型铸造前的数据类型: <class 'str'>
num_string 在类型铸造后的数据类型: <class 'int'>
: 35
num_sum 的数据类型: <class 'int'>

在上面的例子中,我们创建了两个变量:num_string 和 num_integer,分别为 strint 类型值。注意代码,

num_string = int(num_string)

在这里,我们使用了 int() 来执行 num_string 到整数类型的显式类型转换。

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

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

需要记住的关键点

  1. 类型转换是将对象从一种数据类型转换为另一种数据类型的过程。
  2. 隐式类型转换是由 Python 解释器自动执行的。
  3. Python 在隐式类型转换中避免了数据丢失。
  4. 显式类型转换也称为类型铸造,对象的数据类型由用户使用预定义的函数转换。
  5. 在类型铸造中,可能会发生数据丢失,因为我们强制将对象转换为特定的数据类型。