Mic*_*ney 3 python if-statement syntax-error
我知道“单行如果语句”问题已经被问过多次了,但是我无法弄清楚我的代码出了什么问题。我想转换
def has_no_e(word):
if 'e' not in word:
return True
Run Code Online (Sandbox Code Playgroud)
像这样的一行功能:
def hasNoE(word):
return True if 'e' not in word
Run Code Online (Sandbox Code Playgroud)
但是如果这样做我会收到语法错误-为什么?
我认为是因为您没有指定else零件。您应该将其编写为:
return True if 'e' not in word else None
Run Code Online (Sandbox Code Playgroud)
这是因为Python将其视为:
return <expr>
Run Code Online (Sandbox Code Playgroud)
并指定三元条件运算符如<expr>其中有语法:
<expr1> if <condition> else <expr2>
Run Code Online (Sandbox Code Playgroud)
因此,Python正在寻找您的else角色。
False?也许您想False在测试失败的情况下返回。在这种情况下,您可以这样写:
return True if 'e' not in word else False
Run Code Online (Sandbox Code Playgroud)
但这可以缩短:
return 'e' not in word
Run Code Online (Sandbox Code Playgroud)