站点图标 AI技术聚合

Python 中eval 的用法

    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('输入错误')

输出结果:

文章出处登录后可见!

已经登录?立即刷新
退出移动版