首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >验证python中的表达式/中缀

验证python中的表达式/中缀
EN

Stack Overflow用户
提问于 2011-07-19 16:36:51
回答 1查看 768关注 0票数 0

如何在python中验证表达式/中缀?有可能吗?例如:

代码语言:javascript
复制
a-d*9
5-(a*0.3-d+(0.4-e))/k*5
(a-d*9)/(k-y-4.3*e)+(t-7*c)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-19 16:46:00

如果需要Python样式的表达式,可以使用ast模块中的解析器并检查SyntaxError

代码语言:javascript
复制
>>> 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

尽管这可能比您实际需要的解析要多得多:

代码语言:javascript
复制
>>> ast.parse('def spam(): return "ham"')
<_ast.Module object at 0x7fc7bdd9e790>

因此,您可能需要仔细检查返回的解析树。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6744389

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档