我想用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语法,不知道为什么它不起作用!感谢您的帮助。
答案 0 :(得分:2)
添加一个else
来告诉lambda在x==0
时应该评估什么,突然您有了有效的语法:
lambda x: 1/x if x != 0 else 0
此语法构造已添加到PEP-308的adopted 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}和test
和if
都没有的else
。