为什么我的 Python 代码会忽略我的 if 语句并退出?
Why is my Python code ignoring my if-statement and quitting?
我正在尝试编写一个 python 可能有多个玩家的单词益智游戏,并且根据找到的单词的长度给出分数。
这是我的 'plays' 游戏功能,但是,它总是导致“游戏结束!”不管我的回答是对还是错。所以每次都是退出游戏
def play_game(players, board , words, answers):
found_words = []
num_remaining = num_words_on_puzzle - len(found_words)
player_num = 0
while num_remaining > 0:
print_headers(players, board, found_words, num_remaining)
guess_input = input("{player}, make a guess: ".format(
player=players[player_num % len(players)][0]))
# Allow player to quit
if guess_input.lower() == 'q' or 'quit':
break
# Determine if the guess is valid
guess = convert_guess(guess_input)
if is_valid_answer(answers, guess):
# Update a players score since answer is valid
update_score(players[player_num % len(players)], matching_answer(answers, guess))
# Add this word to found_words list
found_words.append(matching_answer(answers, guess))
print("Congratulations, you found '%s'." % matching_answer(answers, guess))
print("That's %d points(s)." % word_score(matching_answer(answers, guess)))
else:
print("Sorry, that is incorrect.")
num_remaining = num_words_on_puzzle - len(found_words)
player_num += 1
print("\nGame over!\n")
print("The final scores are: \n")
print_score(players)
print(answers)
希望有人能帮我看看我的问题出在哪里。
行:
if guess_input.lower() == 'q' or 'quit':
总是计算为 True
,因为它是
if (uess_input.lower() == 'q') or ('quit')
是 (False) or (True) --> True
因为任何 String != ''
是 True
改变
if guess_input.lower() == 'q' or 'quit':
到
if guess_input.lower() in ['q', 'quit']
我正在尝试编写一个 python 可能有多个玩家的单词益智游戏,并且根据找到的单词的长度给出分数。
这是我的 'plays' 游戏功能,但是,它总是导致“游戏结束!”不管我的回答是对还是错。所以每次都是退出游戏
def play_game(players, board , words, answers):
found_words = []
num_remaining = num_words_on_puzzle - len(found_words)
player_num = 0
while num_remaining > 0:
print_headers(players, board, found_words, num_remaining)
guess_input = input("{player}, make a guess: ".format(
player=players[player_num % len(players)][0]))
# Allow player to quit
if guess_input.lower() == 'q' or 'quit':
break
# Determine if the guess is valid
guess = convert_guess(guess_input)
if is_valid_answer(answers, guess):
# Update a players score since answer is valid
update_score(players[player_num % len(players)], matching_answer(answers, guess))
# Add this word to found_words list
found_words.append(matching_answer(answers, guess))
print("Congratulations, you found '%s'." % matching_answer(answers, guess))
print("That's %d points(s)." % word_score(matching_answer(answers, guess)))
else:
print("Sorry, that is incorrect.")
num_remaining = num_words_on_puzzle - len(found_words)
player_num += 1
print("\nGame over!\n")
print("The final scores are: \n")
print_score(players)
print(answers)
希望有人能帮我看看我的问题出在哪里。
行:
if guess_input.lower() == 'q' or 'quit':
总是计算为 True
,因为它是
if (uess_input.lower() == 'q') or ('quit')
是 (False) or (True) --> True
因为任何 String != ''
是 True
改变
if guess_input.lower() == 'q' or 'quit':
到
if guess_input.lower() in ['q', 'quit']