有时候,我们需要对数据内置的类型进行转换。数据类型的转换,一般情况下只需要将数据类型作为函数名即可。

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为这些类型的情况提供了一种解决方案,称为显式类型转换。我们将在下一篇文章中进行详解地分析。