条件为x的lambda:如果x!= 0不起作用则为1 / x

时间:2019-07-24 12:25:37

标签: python manim

我想用GraphScene绘制反比例函数,一切正常,但是当我设置条件x != 0时,会弹出SyntaxError:

f11 = self.get_graph(lambda x: 1/x if x!= 0)

SyntaxError: invalid syntax 

错误表示最后一个括号

我搜索了很多,lambda x: 1/x if x!= 0应该是正确的python语法,不知道为什么它不起作用!感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

添加一个else来告诉lambda在x==0时应该评估什么,突然您有了有效的语法:

lambda x: 1/x if x != 0 else 0

此语法构造已添加到PEP-308adopted in Python 2.5中。在PEP中,语法变化描述如下:

test: or_test ['if' or_test 'else' test] | lambdef
or_test: and_test ('or' and_test)*
...
testlist_safe: or_test [(',' or_test)+ [',']]
...
gen_for: 'for' exprlist 'in' or_test [gen_iter]

如您所见,else是强制性的;没有{em}和testif都没有的else