【发布时间】:2013-10-14 09:46:54
【问题描述】:
我正在尝试使用 exec() 在 Python 中动态执行一些代码语句
从用户输入中接受代码语句。
字符串引号未闭合时出现EOF异常如何处理?
例如。
>> exec('if 5 > 1: print "5 is greater)
# of course, this will raise an exception,
# how do I handle this
如何使用try-catch 处理此类情况?
我应该在这里寻找什么exception?
【问题讨论】:
-
你应该在最后有一个
'对吗? (我知道省略"是您要解决的问题的一部分,但'应该在那里吧?) -
不!如果用户忘记它,则不会。它来自用户的原始输入!
-
是的,但是,sigh..
exec('if 5 > 1: print "5 is greater')最后的'是你的错,不是用户输入的东西不是吗?例如,如果您将exec()中的所有内容替换为名为user_string的变量,则缺少的'将不存在,所以我只是澄清一下,这是您问题中的一种类型,而不是您的实际 EOL重新尝试捕捉,因为这几乎是不可能的(动态)。