原文: https://www.programiz.com/python-programming/type-conversion-and-casting
在本文中,您将了解类型转换的用法。
在学习 Python 中的类型转换之前,您应该了解 Python 数据类型。
类型转换
将一种数据类型(整数,字符串,浮点数等)的值转换为另一种数据类型的过程称为类型转换。 Python 有两种类型的类型转换。
- 隐式类型转换
- 显式类型转换
隐式类型转换
在隐式类型转换中,Python 自动将一种数据类型转换为另一种数据类型。 此过程不需要任何用户参与。
让我们看一个示例,其中 Python 促进将较低数据类型(整数)转换为较高数据类型(浮点数)以避免数据丢失。
示例 1:将整数转换为浮点型
num_int = 123
num_flo = 1.23
num_new = num_int + num_flo
print("datatype of num_int:",type(num_int))
print("datatype of num_flo:",type(num_flo))
print("Value of num_new:",num_new)
print("datatype of num_new:",type(num_new))
当我们运行上面的程序时,输出将是:
datatype of num_int: <class 'int'>
datatype of num_flo: <class 'float'>
Value of num_new: 124.23
datatype of num_new: <class 'float'>
在上面的程序中
- 我们添加两个变量
num_int
和num_flo
,将值存储在num_new
中。 - 我们将分别查看所有三个对象的数据类型。
- 在输出中,我们可以看到
num_int
的数据类型是integer
,而num_flo
的数据类型是float
。 - 另外,我们可以看到
num_new
具有float
数据类型,因为 Python 总是将较小的数据类型转换为较大的数据类型,以避免数据丢失。
现在,让我们尝试添加一个字符串和一个整数,看看 Python 如何处理它。
示例 2:字符串(较高)数据类型和整数(较低)数据类型的加法
num_int = 123
num_str = "456"
print("Data type of num_int:",type(num_int))
print("Data type of num_str:",type(num_str))
print(num_int+num_str)
当我们运行程序时,输出将是:
Data type of num_int: <class 'int'>
Data type of num_str: <class 'str'>
Traceback (most recent call last):
File "python", line 7, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'str'
在上面的程序中,
- 我们添加了两个变量
num_int
和num_str
。 - 从输出中可以看到
TypeError
。 在这种情况下,Python 无法使用隐式转换。 - 但是,Python 针对此类情况提供了一种解决方案,称为“显式转换”。
显式类型转换
在“显式类型转换”中,用户将对象的数据类型转换为所需的数据类型。 我们使用预定义的函数,例如int()
,float()
,str()
等来执行显式类型转换。
这种转换类型也称为类型转换,因为用户强制转换(更改)对象的数据类型。
句法 :
<required_datatype>(expression)
可以通过将所需的数据类型函数分配给表达式来完成类型转换。
示例 3:使用显式转换将字符串和整数相加
num_int = 123
num_str = "456"
print("Data type of num_int:",type(num_int))
print("Data type of num_str before Type Casting:",type(num_str))
num_str = int(num_str)
print("Data type of num_str after Type Casting:",type(num_str))
num_sum = num_int + num_str
print("Sum of num_int and num_str:",num_sum)
print("Data type of the sum:",type(num_sum))
当我们运行程序时,输出将是:
Data type of num_int: <class 'int'>
Data type of num_str before Type Casting: <class 'str'>
Data type of num_str after Type Casting: <class 'int'>
Sum of num_int and num_str: 579
Data type of the sum: <class 'int'>
在上面的程序中,
- 我们添加
num_str
和num_int
变量。 - 我们使用
int()
函数将num_str
从字符串(高位)转换为整数(低位)类型以执行加法。 - 将
num_str
转换为整数后,Python 可以将这两个变量相加。 - 我们将
num_sum
的值和数据类型设为整数。
要记住的要点
- 类型转换是对象从一种数据类型到另一种数据类型的转换。
- 隐式类型转换由 Python 解释器自动执行。
- Python 避免了隐式类型转换中的数据丢失。
- 显式类型转换也称为类型转换,对象的数据类型由用户使用预定义的函数进行转换。
- 在类型转换中,当我们将对象强制为特定数据类型时,可能会发生数据丢失。