while player.count_used_words() != basic_word.count_subwords():
print(f"{player.count_used_words()} and {basic_word.count_subwords()}") # проверка длин
user_word = input("Слово: ").lower()
if player.check_used_word(user_word) == True:
print("Это слово уже использовано")
elif user_word == "stop" or "стоп":
break
else:
if basic_word.check_word_in_list(user_word) == True:
player.add_word(user_word)
print("Верно!")
else:
print("Слово не верно!")
print(f"Игра завершена, вы угадали {player.count_used_words()}")
为什么当程序陷入elif块时,游戏就结束了,虽然user_word变量没有stop或stop这个词,但根本就不是正确的词
为什么会有这样奇怪的行为,如果变量与 stop/stop 这几个词无关,为什么要调用 Break
ps我解决了问题,但我仍然不明白为什么这个块起作用,尽管理论上它不应该起作用
这段代码似乎有效。也许变量
user_word没有被重置或覆盖,但被保存"стоп"或"stop"。在这种情况下,程序会不断被中断。如果你落在前面elif,我建议你break将其重置为零user_word,以防万一。