【发布时间】:2019-11-18 09:46:18
【问题描述】:
我正在处理一个问题,我需要从用户那里获得 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")
【问题讨论】:
-
“我只能使用逻辑运算符”——这究竟是什么意思,为什么……?
-
一般逻辑非常简单:遍历您的输入并计算有多少“匹配”。这可以通过多种方式实现:使用循环并递增 int,过滤列表并检查其长度……
-
"如果至少 3 个匹配项" – 它们必须匹配什么?
-
("Nem ég a lámpa", "Ég a lámpa")[sum(bool(value) for value in tomb) >= 3]。如果值只能是0或1,您可以使用("Nem ég a lámpa", "Ég a lámpa")[sum(tomb) >= 3] -
…将输入转换为整数并求和…
标签: python python-3.x operators