本帖最后由 kogawananari 于 2021-1-16 12:44 编辑
- Python 3.9.1 (tags/v3.9.1:1e5d33e, Dec 7 2020, 17:08:21) [MSC v.1927 64 bit (AMD64)] on win32
- Type "help", "copyright", "credits" or "license" for more information.
- >>> eval('1')
- 1
- >>> exec('1')
- >>> exec('a=1')
- >>> eval('a=1')
- Traceback (most recent call last):
- File "<stdin>", line 1, in <module>
- File "<string>", line 1
- a=1
- ^
- SyntaxError: invalid syntax
- >>> exec('(a:=1)')
- >>> eval('(a:=1)')
- 1
复制代码
python里有语句和表达式的区别
exec()把字符串当成语句执行 但是不会有返回值
eval()把字符串当成表达式执行 传入赋值等操作会报错
运行python文件是逐行执行exec() 故而什么也不显示
而行首有【>>> 】的交互式里面 是执行的exec(compile(input('>>> '),'','single')) 这个可以把表达式和语句都执行如果非None就返回结果
