странная проблема при использовании compile и eval в python - PullRequest
1 голос
/ 22 марта 2019

Я пытаюсь разобрать и оценить формулу, используя 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 Ответ

9 голосов
/ 22 марта 2019

Ведущий ноль заставляет python рассматривать значение как восьмеричное число.08 недействителен, так как восьмеричные числа должны содержать только цифры 0-7.Вы должны удалить ведущий ноль.

...