目录
前言
1、类型转换
1.1 隐式类型转换
1.2 显式类型转换
2、eval函数
总结
前言
上篇我们讲了python中的变量与常量,以及变量类型。本篇文章将接着往下讲。
1、类型转换
python中的数据类型转换包括两种:隐式类型转换和显式类型转换。
1.1 隐式类型转换
隐式类型转换是指在python在计算时会对数据进行自动的类型转换,比如:一开始我们设定两个整数a和b,它们的值分别是10和3,那么如果我们用c这个变量保存a除b的结果时,c的类型就会自动转化为浮点型,因为10除3的结果是小数,因此python会自动将类型转化为浮点型。
下面看例子:
a=10
b=3
c=a/b
print(c,type(c))
可以看到,c的值最后是3.333...。而后我们用type函数测试c的类型,得到的结果是float类型。
1.2 显式类型转换
显示类型转换是我们人为地使用函数将数据转化成我们想要的类型:
函数 | 描述说明 |
int(x) | 将x转化为整数类型 |
float(x) | 将x转化为浮点数类型 |
str(x) | 将整数x转化为一个字符 |
ord(x) | 将一个字符x转化为其对应地整数值 |
hex(x) | 将一个整数x转化为一个十六进制字符串 |
oct(x) | 将一个整数x转化为一个八进制字符串 |
bin(x) | 将一个整数x转化为一个二进制字符串 |
如上表格,记录了显式类型转换会用到的函数。下面我们来举例子:
print(float(10))
print(int(3.14))
print(int(3.9))
print(int('100')+int('200'))
print(chr(100))
print(ord('彭'))
运行结果如下:
第一行我们将10转化为float可以看到它变成了小数10.0,用int将3.14和3.9转化为整数类型输出都为3,因此了解int类型强转小数只保留整数部分,不存在四舍五入。第四行,将两个字符'100'和'200'强制类型转化为整数,相加后得到300,但是需要注意,我们无法将'3.14'这样的数转化成整型,因为它本身不是整型,所以不能" int('3.14') "这样去操作。用chr转化100,python会在unicode表中找到100对应的字符进行输出,这个结果为d。最后ord('彭'),这样转化,python会在unicode表中找到'彭'这个字对应的编号进行输出,这个编号是24429。剩下的转化类型函数也和上述相似,就不全部讲解了。
数值类型转换就讲到这。
2、eval函数
现在讲解eval函数,这是一个python自带的函数,可以直接使用,跟print和input一样。它的作用是:去掉字符串最外侧的引号,并按照python语句方式去指向去掉引号后的字符串。eval函数经常和input函数一起使用。
eval函数的语法形式:
变量=eval(字符串)
举例说明:
s='3.14+3'
print(type(s))
print(eval(s),type(eval(s)))
输出结果如下:
说明,s本身是一个字符串类型,但是eval(s)将会执行3.14+3这个加法操作,得到的结果为6.14,最后多出的1是python计算小数时正常的偏差,最后计算结果类型为'float'。这就是eval函数的作用。
eval函数经常和input一起使用,用来获取用户输入的数值。因为对于input的结果,python会自动处理为字符串类型,所以加上eval函数,就能读取到其数值类型。
总结
本篇文章的内容就先讲到这,主要讲解了类型转换,包括显式类型转换和隐式类型转换。以及eval函数的使用。希望对你有所帮助。