使用Python eval()评估表达式时语法错误

0 投票
1 回答
1039 浏览
提问于 2025-04-17 21:22

我在这段代码中遇到了关于eval()这个Python函数的问题:

 f = 'x'
 f = raw_input('f(x)=')

def ytest(y,x,f):
    if y >= eval(f)
        return 1
    else
        return 0

我知道使用eval()不是个好办法,但我这个简单的程序只有我一个人会用。每次我运行这个程序时,都会出现以下错误:

  File "C:\Users\Grant\Desktop\Plotter\plotter.py", line 9
    if y >= eval(f)
                  ^
SyntaxError: invalid syntax

为什么会出现这个错误?如果f是一个有效的Python表达式的字符串形式,难道代码就不应该有效吗?

即使我把eval(f)换成eval('0'),错误依然会出现,所以我搞不清楚问题出在哪里。

1 个回答

4

ifelse语句的结尾需要加上冒号。

if y >= eval(f):
    return 1
else:
    return 0

编辑:添加了文档else的相关内容。

撰写回答