阅读query。
下面的python代码仍然不清楚,
>>> exec('print(5+10)')
15
>>> eval('print(5+10)')
15
在bash
世界,
exec
用给定的命令替换shell。
eval
以shell命令执行参数。
问题:
表达式是计算值
的计算要评估python中的任何表达式(在我的情况下,来自python代码的print(5+10)
),eval()
的工作方式与exec()
有何不同?
答案 0 :(得分:4)
eval()的工作原理与exec()有何不同?
在您的两种情况下,eval()
和exec()
都,执行相同的操作。他们打印表达式的结果。但是,它们仍然不同。
eval()
函数只能执行Python 表达式,而exec()
函数可以执行任何有效的Python代码。这可以通过几个例子看出:
>>> eval('1 + 2')
3
>>> exec('1 + 2')
>>>
>>> eval('for i in range(1, 11): print(i)')
Traceback (most recent call last):
File "<pyshell#45>", line 1, in <module>
eval('for i in range(1, 11): print(i)')
File "<string>", line 1
for i in range(1, 11): print(i)
^
SyntaxError: invalid syntax
>>> exec('for i in range(1, 11): print(i)')
1
2
3
4
5
6
7
8
9
10
>>>