我正在解决一个问题,我需要从用户那里获得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")
答案 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
中。