首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在python for infix中测试错误的表达式

如何在python for infix中测试错误的表达式
EN

Stack Overflow用户
提问于 2020-07-19 01:44:20
回答 1查看 106关注 0票数 0
代码语言:javascript
运行
复制
def main1(expr):
    if expr(eval) raise ValueError:
        raise ValueError("Not a correct expression")

main1((8+3)*(5-6)))

因此,我有如下参数:(8+3)*(5-6))

然而,我故意在这上面加了另一个括号,使这个中缀表达式无效。

有没有办法在我的代码中做到这一点,它试图评估它,如果它运行一个错误,引发一个值错误,声明它不是一个有效的输入?

EN

回答 1

Stack Overflow用户

发布于 2020-07-19 01:47:53

您要找的是一个try - catch。

尽管老实说,没有很好的理由来使用它。所引发的错误已经是一个语法错误,这是用户在语法错误时所期望的错误。

一种更好的方法可能是:

代码语言:javascript
运行
复制
def main1(expr):
    try:
        eval(expr)
    except SyntaxError:
        #logger.error("This is not a correct expression")
        print("This is not a correct expression")
        raise

或者,如果你决定这样做,这应该做你想做的事情。

代码语言:javascript
运行
复制
def main1(expr):
    try:
        eval(expr)
    except SyntaxError:
        raise ValueError("Not a correct expression")

main1("(8+3)*(5-6))")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62971815

复制
相关文章

相似问题

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