尝试计算表达式时Python eval()语法错误

时间:2014-03-07 22:08:26

标签: python python-2.7 syntax-error eval

我在这段代码中遇到了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('0')替换eval(f)时也会发生错误,所以我无法弄清问题是什么。

1 个答案:

答案 0 :(得分:4)

您需要在ifelse语句末尾添加冒号。

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

编辑:添加了documentationelse