【发布时间】:2018-10-12 04:16:14
【问题描述】:
我认为问题出在我的第二个 while 循环上。在我按回车键运行游戏后,它会一直打印 _。我不确定如何不满足条件或在哪里添加休息时间。我已经尝试更改 else: 的缩进:当我这样做时,循环根本不会运行。
import random
#make a list of words
words = [
'apple',
'banana',
'orange',
'coconut',
'strawberry',
'lime',
'grapefruit',
'lemon',
'kiwi',
'blueberry',
'melon'
]
while True:
start = input("Press enter/return to start, or Q to quit")
if start.lower() == 'q':
break
#pick rand word
secret_word = random.choice(words)
bad_guesses = []
good_guesses = []
while len(bad_guesses) < 7 and len(good_guesses) != len(list(secret_word)):
#draw guessed letters, spaces, and strikes
for letter in secret_word:
if letter in good_guesses:
print(letter, end='')
else:
print('_', end='')
print('')
print('Strikes: {}/7'.format(len(bad_guesses)))
print('')
#take guess
guess = input("Guess a letter: ").lower()
if len(guess) != 1:
print("You can only guess a single letter!")
continue
elif guess in bad_guesses or guess in good_guesses:
print("You already guessed that letter!")
continue
elif not guess.isalpha():
print("You can only guess letters!")
continue
if guess in secret_word:
good_guesses.append(guess)
if len(good_guesses) == len(list(secret_word)):
print("You Win! The word was {}".format(secret_word))
break
else:
bad_guesses.append(guess)
else:
print("You didn't get it! My secret word was {}".format(secret_word))
【问题讨论】:
-
Inner while 永远不会结束,因为
bad_guesses和good_guesses总是空的 -
所以如果我在 bad_guesses 和 good_guesses 中添加一些东西到我的数组中,它会修复它吗?
标签: python python-3.x if-statement while-loop