我知道这个问题可能听起来很愚蠢,但是我在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"将为真,只要你的其中一个检查为真