Python:如何比较if语句中的用户输入字符串?



我知道这个问题可能听起来很愚蠢,但是我在if语句中检查/比较字符串时遇到了问题。

我是Python新手,我们需要用Python为我们的学校作业做一个小项目。我决定做"石头、布、剪刀"。作为控制台应用程序。

我面临的问题是,我不能真正比较用户输入和if语句中的字符串。我已经尝试了不同版本的ex.

Benutzerwahl = input("Wähle aus: Schere, Stein, Papier:")
if not Benutzerwahl == "Schere" or Benutzerwahl == "Stein" or Benutzerwahl == "Papier":
print ("n")
print ("Wrong Input, please type in again!")
print ("n")
continue

但是当我执行程序并输入for . " paper "(英格兰。由于某种原因,它会出现在if语句中,对于我输入的其他单词也是如此。

我错过了什么,或者是什么问题?

完整代码:

while (1<2):
Benutzerwahl = input("Wähle aus: Schere, Stein, Papier:")
if Benutzerwahl != "Schere" or Benutzerwahl != "Stein" or Benutzerwahl != "Papier":
print ("n")
print ("Falsche Eingabe, bitte richtig eintragen")
print ("n")
continue
print ('Du hast gewählt: ') + Benutzerwahl
Wahloptionen = ['Schere', 'Stein', 'Papier']
GegnerWahl = random.choice(Wahloptionen)
print ('Ich habe gewählt: ') + GegnerWahl
if GegnerWahl == Benutzerwahl:
print ('Unentschieden')
elif GegnerWahl == 'Schere' and Benutzerwahl == 'Papier':
print('Schere schneidet Papier! Ich habe gewonnen!')
continue
elif GegnerWahl == 'Stein' and Benutzerwahl == 'Schere':
print('Stein schlägt Schere! Ich habe gewonnen!')
continue
elif GegnerWahl == 'Papier' and Benutzerwahl == 'Stein':
print('Papier schlägt Stein! Ich habe gewonnen')
continue
else:
print('Du hast gewonnen!')

你的条件总是true,因为同时只有一个不等式可以是false。所以false or true or true => true

你应该用and而不是or

更好的是,您可以检查输入是否是集合的一部分:

if Benutzerwahl not in {"Schere", "Stein", "Papier"}:
...

使用"and"而不是"或"or"将为真,只要你的其中一个检查为真

最新更新