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

时间:2019-11-18 09:46:18

标签: python python-3.x operators

我正在解决一个问题,我需要从用户那里获得4个输入,如果至少3个匹配,则输出为True。唯一的问题是我只能使用逻辑运算符(或,而不能,也不能,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")

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

使用all函数。如果所有值均为true,则all函数将返回true。您不必执行tome[0] and tome[1] ...

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

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

print(any(ans))

此代码的作用是遍历输入中的所有3种组合,找到所有真正的三元组并将其放入ans中。

相关问题