0

Pythonで式/中置を検証するにはどうすればよいですか?出来ますか?例えば:

a-d*9
5-(a*0.3-d+(0.4-e))/k*5
(a-d*9)/(k-y-4.3*e)+(t-7*c)
4

1 に答える 1

2

Pythonスタイルの式が必要な場合は、astモジュールでパーサーを使用して、次のことを確認できSyntaxErrorます。

>>> ast.parse('5-(a*0.3-d+(0.4-e))/k*5')
<_ast.Module object at 0x7fc7bdd9e790>
>>> ast.parse('5-(a*0.3-d+(0.4-e))/k*')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.6/ast.py", line 37, in parse
    return compile(expr, filename, mode, PyCF_ONLY_AST)
  File "<unknown>", line 1
    5-(a*0.3-d+(0.4-e))/k*
                        ^
SyntaxError: unexpected EOF while parsing

それはあなたが実際に必要とするよりはるかに多くを解析するかもしれませんが:

>>> ast.parse('def spam(): return "ham"')
<_ast.Module object at 0x7fc7bdd9e790>

したがって、返された解析ツリーを注意深く調べることをお勧めします。

于 2011-07-19T08:46:00.127 に答える