a | b == 0 vs a == 0或b == 0的方法有什么问题吗?
def validate(a,b,c):
print(a,b,c)
if (a|b == 0) or c == 0:
return "Invalid"
else:
return "Valid"
print("Test 1: ", validate(0,1,2))
print("Test 2: ", validate(0,1,0))
>0 1 2
Test 1: Valid
>0 1 0
Test 2: Invalid
答案 0 :(得分:-1)
您似乎对python的or
和|
感到困惑。
难以理解,因为许多语言中的or运算符是|
(或更常见的是||
)。
此page lists python's operators
重试您的示例,但使用or
而不是|
if (a or b == 0) or c == 0:
但是,如果我正确阅读了您的问题,则认为您正在尝试这样做;
if (a == b == 0) or c == 0:
这是python中的快捷方式语法,用于检查a
和b
是否都等于0。
编辑:根据澄清;
要求是确认没有将0作为参数传递给函数
如果您可以放心地假设您的参数将是整数,那么我将采用以下方法:
if a and b and c:
pass # valid
else:
pass # invalid
0
是错误的-因此让我们使用事实。否则,执行工作就没有真正的“捷径”。