eval函数主要是用来实现python中各种数据类型与str之间的转换,下面会详细的举出实例来帮助理解
一 eval( )函数的基本用法
(1)字符串转换为列表
b=eval(a) print(a) print(b) print(type(a)) print(type(b))
输出结果如下
可见eval将原本为字符串类型的a转换为了list列表类型的b
(2)将字符串转换为字典
a='{"number":2,"name":"jay"}' b=eval(a) print(a) print(b) print(type(a)) print(type(b))
注意: 这里的a中的number这种要用双引号
输出结果如下
(3)将字符串转换为元组
a='(1,2,3,4,5)' b=eval(a) print(a) print(b) print(type(a)) print(type(b))
输出结果如下
总结: 字符串中包含的什么,通过eval函数就可以输出什么。比如字符串里面包含的字典就输出字典,包含的列表就输出列表,但是字符串相应的格式一定要输入正确,否则会报错
二 作业中遇到的问题及解决方法
题目: 输入一个数和100比较大小
出错代码
a=input('请输入数字来比较和100的大小:')
if a>100:
print('输入的比100大')
elif a<100:
print('输入的比100小')
elif a==100:
print('输入的跟100一样大')
else :
print('输入错误')
原因是 input会把键盘输入的东西全视为字符串,不能和int类型的数字做比较
解决办法
去查了一下,eval可以把字符串的引号去掉,然后继续执行,所以在input外面加一层eval函数,可以方便快捷地取输入的数字
改正之后的代码:
a=eval(input('请输入数字来比较和100的大小:'))
if a>100:
print('输入的比100大')
elif a<100:
print('输入的比100小')
elif a==100:
print('输入的跟100一样大')
else :
print('输入错误')
输出结果:
文章出处登录后可见!
已经登录?立即刷新