在python中,数据类型的转换有两种方式:隐式类型转换和显示类型转换。
隐式类型转换一般在进行计算时,自动完成转换,显示类型转换一般要用到类型函数来完成转换,它的格式为:数据类型(要转换的数据)
隐式类型转换的一般规则为:两数进行运算时,一般将较低数据类型(整数)转换为较高数据类型(浮点数),以免数据丢失。
执行以下代码:
a=12
b=12.5
c='234'
print(type(a)) #获取a的数据类型
print(type(b)) #获取b的数据类型
print(type(c)) #获取c的数据类型
d=a+b
print('a+b的值为:',d,'\td的数据类型为:',type(d))
e=int(c) #将c转换为int类型,并将结果赋值给e
print(type(c))
print(type(e))
e=a+e
print(type(e))
结果为:
可以看到a是int型数据,b是float型数据,他们相加后,运算结果d为float型数据。
c是str类型数据,可以使用int()把它转换为int类型数据并与数字类型数据进行运算
但是,要注意的是,我们不能将数字类型数据与字符串类型数据进行运算,它不会进行隐式转换,两者进行运算会报错,但是我们可以用类型转换函数将字符串类型数据转换为数字类型的数据之后,将它与数字类型数据进行计算。
执行以下代码:
a=1
b='2.3'
print(a+float(b),'\ta+b的数据类型为:',type(a+float(b)))
a=1
b='2.5'
print(a+b,'\ta+b的数据类型为:',type(a+b))
结果为:
从上面可以看到a+foat(b)的运算结果为3.3,但是直接计算a+b会报错:TypeError: unsupported operand type(s) for +: 'int' and 'str'
常用的显示类型转换函数有:int(),float(),str()
下面是一些实例:
print(int(2.8))
print(int('2'))
print(float(1))
print((float(1.2)))
print(float('2'))
print(float(2.3))
print(str('1'))
print(str(1.2))
print(str('1'))
运行结果为:
要注意的是,类似这样字符串类型的数据:‘2.3’,只能直接显示转换为float类型的数据,而不能直接显示转换为int类型的数据
python中还有很多其他的数据类型转换函数可以对数据显示转换,这里没有一一列出了。