这是我的代码:
for count in range(NOI):
ig=input("enter a GTIN code: ")
while ig!=("21356797"):
print("incorrect")
ig=input("enter a GTIN code: ")
count =count+1
这是输出:
21356797
13246785
31325974
45689413
34512340
56756777
how many items do you want to buy?: 1
enter a GTIN code: 21356797
>>>
这就是我想要的。然而,一旦我在我的while循环中输入OR,我就无法像第一部分一样工作:
while ig!=("21356797" or "13246785"):
print("incorrect")
ig=input("enter a GTIN code: ")
count =count+1
这是输出:
how many items do you want to buy?: 1
enter a GTIN code: 13246785
incorrect
enter a GTIN code: 21356797
>>>
答案 0 :(得分:2)
你的考试:
ig!=("21356797" or "13246785")
首先评估or
条件,返回第一个“truthy”值。因此,它完全等同于:
ig!= "21356797"
因为"21356797"
是真实的。
你想要一个遏制测试:
ig not in ("21356797", "13246785")
或两个连续的!=
测试和编辑:
ig != "21356797" and ig != "13246785"
# Equivalent to:
not (ig == "21356797" or ig == "13246785")
包含测试可以更清晰地扩展到更大的值集,并且只要所有值都是字符串文字,就会同样有效(CPython缓存文字的常量tuple
)。