Python: 如何比较 if 语句中的用户输入字符串?
Python: How can i compare a User-Input-String in an if-Statement?
我知道这个问题听起来很愚蠢,但我在 check/compare 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 ex 时。 “Papier”(engl.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"}:
...
我知道这个问题听起来很愚蠢,但我在 check/compare 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 ex 时。 “Papier”(engl.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"}:
...