Python 类型转换和类型转换
Python 类型转换和类型转换
在本文中,您将了解类型转换和类型转换的使用。
在学习 Python 中的类型转换之前,您应该了解 Python 数据类型。
类型转换
将一种数据类型(整数、字符串、浮点数等)的值转换为另一种数据类型的过程称为类型转换。 Python有两种类型转换。
- 隐式类型转换
- 显式类型转换
隐式类型转换
在隐式类型转换中,Python 自动将一种数据类型转换为另一种数据类型。此过程不需要任何用户参与。
我们来看一个例子,Python 促进低数据类型(整数)到高数据类型(浮点数)的转换,避免数据丢失。
示例一:整数转浮点数
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 变量。
- 我们转换了 num_str 使用
int()
从字符串(高)到整数(低)类型 执行加法的函数。 - 转换后num_str 到一个整数值,Python 能够将这两个变量相加。
- 我们得到了 num_sum 值和数据类型为整数。
要记住的关键点
- 类型转换是将对象从一种数据类型转换为另一种数据类型。
- 隐式类型转换由 Python 解释器自动执行。
- Python 避免了隐式类型转换中的数据丢失。
- 显式类型转换也称为类型转换,对象的数据类型由用户使用预定义的函数进行转换。
- 在类型转换中,当我们将对象强制为特定数据类型时,可能会发生数据丢失。
Python