goo*_*ion -3 python eval python-2.7
我有一个循环,它一直运行直到用户按下 Ctrl+C。
然后要求用户输入 y/n。
如果用户按下'y',那么我就按下eval('continue')。
如果用户按下'n',那么我就按下eval('break')。
while True:
try:
...
except KeyboardInterrupt:
...
options = {'y':'continue','n':'break'}
while True:
decision = raw_input('continue (y/n)?')
if decision in options:
break
eval(options[decision])
Run Code Online (Sandbox Code Playgroud)
当我按下 时'y',我得到:
continue
^
SyntaxError: unexpected EOF while parsing
Run Code Online (Sandbox Code Playgroud)
当我按下 时'n',我得到:
break
^
SyntaxError: unexpected EOF while parsing
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下我在这里缺少什么吗?
eval()只计算表达式。break和continue不是表达式,它们是(简单的)语句。
您不能在此处从变量运行此类语句;编译器需要预先知道这些语句将在哪里使用,因为字节码中涉及跳转偏移量。只需使用if测试:
if decision == 'y':
continue
elif decision == 'n':
break
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
644 次 |
| 最近记录: |