有时候,我们需要对数据内置的类型进行转换。数据类型的转换,一般情况下只需要将数据类型作为函数名即可。
Python中的数据类型转换可以分为两种:
- 隐式类型转换 - 自动完成
- 显式类型转换 - 需要使用类型函数来转换
隐式类型转换
在隐式类型转换中,python会自动将一种数据类型转换为另一种数据类型,不要我们去干预。
在下面的例子中,我们对两种不同类型的数据进行运算,相比之下,较低数据类型(整数)就会转换为较高数据类型(浮点数)为了避免数据丢失。
实例:
a_int = 666
a_float = 6.86
a_new = a_int + a_float
print(type(a_int)) #输出变量a_int的数据类型
print(type(a_float)) #输出变量a_float的数据类型
print(a_new) #输出变量a_new的值
print(type(a_new)) #输出变量a_new的数据类型
执行结果为:
<class 'int'>
<class 'float'>
672.86
<class 'float'>
代码分析:
- 在上面的例子中,我们对两个不同数据类型的变量 a_int 和 a_floa t进行了加法运算,并将结果存储在 a_new 中。
- 之后我们用type()函数查看三个变量的数据类型。
- 在输出结果中,我们看到,a_int 是整型(int),a_float是浮点型(float)。
- 新的变量 a_new 是浮点型(float),这是因为Python会将较小的数据类型转换为较大的数据类型,以免数据丢失。
接下来我们再看这个例子,整型数据和字符串类型的数据进行相加:
实例:
a_int = 868
a_str = "996"
print(type(a_int))
print(type(a_str))
print(a_int+a_str)
执行结果为:
<class 'int'>
<class 'str'>
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-3-7f52fc49c1a1> in <module>
5 print(type(a_str))
6
----> 7 print(a_int+a_str)
TypeError: unsupported operand type(s) for +: 'int' and 'str'
从以上的执行结果中可以看出,整型和字符串类型运算结果会报错,输出TypeError。Python在这种情况下无法使用隐式类型转换。但是,Python为这些类型的情况提供了一种解决方案,称为显式类型转换。我们将在下一篇文章中进行详解地分析。