在学习Python中的类型转换之前,您应该了解 Python数据类型。
将一种数据类型(整数,字符串,浮点数等)的值转换为另一种数据类型的过程称为类型转换。Python有两种类型的类型转换。
隐式类型转换
显式类型转换
在隐式类型转换中,Python自动将一种数据类型转换为另一种数据类型。此过程不需要任何用户参与。
让我们看一个示例,其中Python促进将较低数据类型(整数)转换为较高数据类型(浮点数)以避免数据丢失。
num_int = 123 num_flo = 1.23 num_new = num_int + num_flo print("num_int的数据类型:",type(num_int)) print("num_flo的数据类型:",type(num_flo)) print("num_new的值:",num_new) print("num_new的数据类型:",type(num_new))
当我们运行上面的程序时,输出将是:
num_int的数据类型: <class 'int'> num_flo的数据类型: <class 'float'> num_new的值: 124.23 num_new的数据类型: <class 'float'>
在上面的程序中
我们将两个变量num_int和num_flo 相加,并将值存储在变量num_new 中。
我们分别查看所有三个对象的数据类型。
在输出中,我们可以看到num_int的数据类型是 integer,num_flo的数据类型是一个float。
另外,我们可以看到num_new具有float数据类型,因为 Python 总是将较小的数据类型转换为较大的数据类型,以避免数据丢失。
现在,让我们尝试 一个字符串 和 一个整数 相加,并查看Python如何处理它。
num_int = 123 num_str = "456" print("num_int的数据类型:",type(num_int)) print("num_str的数据类型:",type(num_str)) print(num_int+num_str)
当我们运行上面的程序时,输出将是:
num_int的数据类型: <class 'int'> 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)
可以通过将所需的数据类型函数分配给表达式来完成类型转换。
num_int = 123 num_str = "456" print("num_int的数据类型:",type(num_int)) print("类型转换之前num str的数据类型:",type(num_str)) num_str = int(num_str) print("类型转换后的num str的数据类型:",type(num_str)) num_sum = num_int + num_str print("num_int与num_str的和:",num_sum) print("sum的数据类型:",type(num_sum))
当我们运行上面的程序时,输出将是:
num_int的数据类型: <class 'int'> 类型转换之前num str的数据类型: <class 'str'> 类型转换后的num str的数据类型: <class 'int'> num_int与num_str的和: 579 sum的数据类型: <class 'int'>
在上面的程序中
我们num_str和num_int变量相加。
我们使用 int() 函数将num_str从 string(高)转换为 integer(低)类型来执行加法。
将num_str转换为整数后,Python可以对这两个变量进行相加。
最后,我们得到num_sum值 和 以及该值得数据类型为整数。
类型转换是对象从一种数据类型到另一种数据类型的转换。
隐式类型转换由Python解释器自动执行。
Python避免了隐式类型转换中的数据丢失。
显式类型转换也称为类型转换,用户使用预定义的函数转换对象的数据类型。
在类型转换中,当我们将对象强制为特定数据类型时,可能会发生数据丢失。