在python中使用compile和eval时出现奇怪的问题

时间:2019-03-22 12:27:12

标签: python python-2.7 eval

我正在尝试使用python eval解析和评估公式并进行编译。在一种情况下,它正在工作,在其他情况下,它没有工作。见下文: 一切正常

>>> formula = '(00*3600)+(03*60)+10'
>>> eval(compile(formula, '<string>', 'eval'))
190

但这会导致错误

>>> formula = '(00*3600)+(08*60)+53'
>>> eval(compile(formula, '<string>', 'eval'))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<string>", line 1
    (00*3600)+(08*60)+53
                ^
SyntaxError: invalid token

请帮助。我听不懂我正在使用Python 2.7.5

1 个答案:

答案 0 :(得分:9)

前导零使python将值视为八进制数。 08是无效的,因为八进制数字只能包含数字0-7。您应该删除前导零。