有没有办法缩短这个 if 语句?
Is there a way to shorten this if statement?
我正在努力做到,如果两个或更多变量为假,则语句结束;但是我这样做的方式,代码占用的方式太多了 space.
if g == False and h == False:
print("Use a different formula.")
return
elif g == False and i == False:
print("Use a different formula.")
return
elif g == False and c == False:
print("Use a different formula.")
return
elif h == False and i == False:
print("Use a different formula.")
return
elif h == False and c == False:
print("Use a different formula.")
return
elif i == False and c == False:
print("Use a different formula.")
return
elif g == False and h == False and i == False:
print("Use a different formula.")
return
elif g == False and h == False and c == False:
print("Use a different formula.")
return
elif h == False and i == False and c == False:
print("Use a different formula.")
return
elif c == False and i == False and g == False:
print("Use a different formula.")
return
elif g == False and h == False and i == False and c == False:
print("Use a different formula.")
return
这就是我所拥有的,从技术上讲它应该可以工作,但必须有一种方法来缩短它。请帮忙。
Python 的布尔值 True
和 False
在算术上可以分别视为整数 1
和 0
。所以如果把它们加在一起,结果小于等于2,那么至少有两个一定是假的。
if g + h + c + i <= 2:
...
正如@MadPhysicist 在评论中指出的那样,这是可行的,因为 bool
是 int
的子类。
我正在努力做到,如果两个或更多变量为假,则语句结束;但是我这样做的方式,代码占用的方式太多了 space.
if g == False and h == False:
print("Use a different formula.")
return
elif g == False and i == False:
print("Use a different formula.")
return
elif g == False and c == False:
print("Use a different formula.")
return
elif h == False and i == False:
print("Use a different formula.")
return
elif h == False and c == False:
print("Use a different formula.")
return
elif i == False and c == False:
print("Use a different formula.")
return
elif g == False and h == False and i == False:
print("Use a different formula.")
return
elif g == False and h == False and c == False:
print("Use a different formula.")
return
elif h == False and i == False and c == False:
print("Use a different formula.")
return
elif c == False and i == False and g == False:
print("Use a different formula.")
return
elif g == False and h == False and i == False and c == False:
print("Use a different formula.")
return
这就是我所拥有的,从技术上讲它应该可以工作,但必须有一种方法来缩短它。请帮忙。
Python 的布尔值 True
和 False
在算术上可以分别视为整数 1
和 0
。所以如果把它们加在一起,结果小于等于2,那么至少有两个一定是假的。
if g + h + c + i <= 2:
...
正如@MadPhysicist 在评论中指出的那样,这是可行的,因为 bool
是 int
的子类。