import random
words = ["Rock", "Paper", "Scissors"]
wins, loss = 0, 0
while True:
word = random.choice(words)
ur_word = input("Rock, Paper, Scissors..: ")
print("\nComputer: {0}\nYou: {1}\n".format(word, ur_word))
if word == ur_word:
print("Tie!")
continue
elif ur_word == 'q':
break
elif word == 'Rock':
if ur_word == 'Paper':
print("You won!")
wins += 1
elif ur_word == 'Scissors':
print("You lost!")
loss += 1
elif word == 'Paper':
if ur_word == 'Rock':
print("You lost")
loss += 1
elif ur_word == 'Scissors':
print("You won!")
wins += 1
elif word == 'Scissors':
if ur_word == 'Rock':
print("You won!")
wins += 1
elif ur_word == 'Paper':
print("You lost!")
loss += 1
else: <<<<---------///----------HERE------------///----
print("Please enter a valid input.")
if wins == 3:
print("\n\tYou won the entire game of three rounds!")
break
elif loss == 3:
print("\n\tYou lost the entire game of three rounds!")
break
**现在,我的问题是:当我输入“ 74n9wndwekf”之类的任意值时,为什么所选的else语句不执行?
一个人告诉我,您不能在if
语句之后执行elif
和else
语句,也不能在break
语句之后执行代码。我不明白他的意思,也不知道这些信息对您没有任何价值。**
答案 0 :(得分:2)
global g_list
永远不会发生,因为您的else
之一永远是真实的。 elif
将始终成为word
,Rock
或Paper
之一,因此您永远都不会打中Scissors
。>
一个简单的解决方法是重组else
的链以首先检查if...elif
。
另一种可行的方法是先进行输入验证,然后再执行其他操作,例如:
ur_word
答案 1 :(得分:0)
在if语句中,您正在检查以下内容:
这里的问题是计算机的随机选择将始终是“ Rock”,“ Paper”或“ Scissors”,因此将满足前三个if / elif条件之一,因此您的else块将永远不会达到。
尝试设计if语句来首先检查用户输入,而不是计算机的选择。