最近在学习python的过程中,遇到了eval()函数,所以便查资料进行了细致了解,https://blog.csdn.net/qq_37089628/article/details/86664688这位大哥的博客介绍的非常明白,我看了之后才彻底理解,大家可以去看看。
eval()函数用来执行一个字符串表达式,并返回表达式的值,通俗地讲就是去掉参数最外层引号并执行语句。
注意:eval的参数必须是字符串,否则将会报错。
>>> eval("68+68")
136
>>> eval("print('hello world')")
hello world
>>> eval("'hello world'")
'hello world'
注意:内外引号必须不同,否则无法识别,程序报错
将一个元组加双引号,构成字符串,使用eval()函数可以将双引号去掉得到元组
>>> a="(1,2,3,'hello world')"
>>> b=eval(a)
>>> print(type(a),type(b),b)
<class 'str'> <class 'tuple'> (1, 2, 3, 'hello world')
同理,对列表、字典也有相同的作用。
列表
>>> a="['physics','chemistry',1997,2020]"
>>> b=eval(a)
>>> print(type(a),type(b),b)
<class 'str'> <class 'list'> ['physics', 'chemistry', 1997, 2020]
字典
>>> dict='{"name":"马云","address":"杭州"}'
>>> new_dict=eval(dict)
>>> print(type(dict),type(new_dict),new_dict)
<class 'str'> <class 'dict'> {'name': '马云', 'address': '杭州'}
此外,eval函数也可以直接用来提取用户输入的多个值。我们通过下面一个猜数值例子来对eval()的作用进行进一步学习。
guess=eval(input("请输出您所猜的数值:"))
if guess==68:
print("您猜对了!")
else:
print("您猜错了!")
#程序运行结果
请输出您所猜的数值:86
您猜错了!
请输出您所猜的数值:68
您猜对了!
对于上面这个 if else这个二分支结构,我们还可以采取如下这种更加紧凑的写法:
格式:<表达式1> if <条件> else <表达式2>
guess = eval(input("请输入您所猜的值:"))
print ("您猜{}了".format("对" if guess == 68 else "错"))
以上内容如有错误或不严谨之处,敬请批评指正!谢谢!