检查元素,如果至少有3个匹配,则为True



我正在处理一个问题,需要从用户那里获得4个输入,如果至少有3个匹配,那么输出为True。唯一的问题是我只能使用逻辑运算符(or,and,not,nor,nand,xor等(。我在4打开的情况下做到了,但不知道如何在没有复杂代码的情况下为3做到这一点。也可以在没有和如果的情况下完成?谢谢

tomb = []
for i in range(4):
all = int(input("A kapcsoló állapota (1-fel, 0-le): "))
tomb.append(all)
if tomb[0] and tomb[1] and tomb[2] and tomb[3]:
print("Ég a lámpa")
else:
print("Nem ég a lámpa")

您可以计算答案并应用您想要的任何匹配阈值:

default_msg = 'Ég a lámpa'
threshold = 3
print(default_msg) if sum(tomb) >= threshold else print('Nem' + default_msg.lower())

使用all函数。如果所有值都为true,则all函数将返回true。你不必做tome[0] and tome[1] ...

类似地,如果tome[0] or tome[1] ...中的任何一个为真,则any返回真。

for i in range(3):
ans = all(tome[:i] + tome[i+1:])
print(any(ans))

这段代码所做的是迭代输入中的所有3个组合,找到所有真正的三元组并将其放入ans中。

相关内容

最新更新