Python,一行if,else还是声明?

Sta*_*tec 0 python if-statement

我很清楚你可以if else用Python 做一行语句,但我想知道是否有可能添加一个or.出于某种原因,这不起作用,即使它看起来应该如此.有没有办法做到这一点:

def write(value):
    return 'That is not a good value' if value is not 1 or 0 #SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

编辑

因此,此函数将检查传入的值是否为整数0或1,'That is not a good value'如果不是则返回,否则返回任何内容.IE

write(1) #Nothing
write(2) # That is not a good value
Run Code Online (Sandbox Code Playgroud)

Ósc*_*pez 6

试试这个:

'That is not a good value' if value not in (0, 1) else None
Run Code Online (Sandbox Code Playgroud)

在上面,我们可以使用inmembership运算符来测试or具有两个或更多条件的表达式的等价物.请注意,条件表达式必须包含一个else部分(请参阅文档).如果你不想返回"任何东西",你仍然需要返回一些东西.例如,空字符串''None.