数据类型转换也就是把之前的数据类型转换成另外一种,我们可以通过做运算或者内置函数进行转换,这篇文章我们来讲解一下具体怎么实施。
进行算术运算可以在int和float直接进行转换,如下代码:
print (6/3) #2.0
print (type(6/3)) #float类型
- int(x):把x转成int型
- float(x):把x转成float型
- str(x):把x转成字符串型
- chr(x):把ASCII码转成字符
- ord(x):把字符转成ASCII码
- hex(x):把十进制x转换成十六进制
- oct(x):把十进制x转换成八进制
- bin(x):把十进制x转换成二进制
- eval (字符串):去掉字符串的引号
int型代码如下:
print (int('3')) #字符串转int,结果为3
print (int(1.23)) #float转int,结果为1
print (int(1.99)) #float转int,结果为1,因为是截断小数点后边的,只取整数,所以是1
print (int('1.23')) #这个会报错,因为字符串1.23没办法直接转成整型
print (int('abcd')) #这个也会报错,因为字符串abcd本身就没办法转换成整型
float型代码如下:
print (float(3)) #int转换成float,结果为3.0
print (float('3.14')) #字符串转换成float,结果为3.14
print (float('3a')) #字符串转换成float,会报错,因为没办法转换
str型:
万物皆可字符串
print (type(str(3))) #字符串3,type为查看数据类型
print (type(str(3.14))) #字符串3.14
chr,ord以及后边的几个函数,咱们之前几篇文章中已经讲过了,这里就用几个简单的例子回忆一下:
print (chr(65)) #A,表示ASCII码65指向的字符
print (ord('A')) #65,字符A的ASCII码
print (hex(10)) #0xa,10的十六进制
print (oct(10)) #0o12,10的八进制
print (bin(10)) #0b1010,10的二进制
eval:这个函数是把字符串去掉引号,经常应用在程序里边取数据。这个函数用的非常多,但是需要注意的是,字符串去掉引号后,里边的内容得有意义,否则会报错。代码如下:
a = eval('3') #字符串3去掉引号后是3
print (a) #3
b = eval('c') #字符c去掉引号后变成了变量名,但是没有定义过这个变量,所以会报错
print (b)
user_info = '{user_name=\'张三\',age=23}' #去掉引号后,是个字典
print (user_info) #结果为:{user_name='张三',age=23}
综上所述,是我们讲的数据类型之间的转换,需要结合之前的进制转换一起看哦。