无限循环,我无法解决它。 Python的新手,请原谅任何新手的错误。还没有完全理解语法,但我只在这里工作了三天。我认为这是因为缩进但我不确定。提前谢谢!
import random
words = [
'burger',
'fettucine',
'lasanga',
'steak',
'garlic bread'
'watermelon',
'tea',
'pineapple'
'coffee',
'shrimp penne'
]
while True:
start = input("Press enter to start, or press Q to quit.")
if start.lower() == 'q':
break
secret_word = random.choice(words)
bad_guesses = []
good_guesses = []
while len(bad_guesses) < 10 and len(good_guesses) != len(list(secret_word)):
for letter in secret_word:
if letter in good_guesses:
print(letter, end='')
else:
print('_', end='')
print('')
print('Strikes: {}/10'.format(len(bad_guesses))) # this is what loops
print('')
guess = input("Guess a letter: ").lower()
if len(guess) != 1:
print("You can only guess one letter!")
continue
elif guess in bad_guesses or guess in good_guesses:
print("You have 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. The word was{}.".format(secret_word))
答案 0 :(得分:0)
下面修正了代码。
我发现了一些问题:
'garlic bread'
和'pineapple'
之后缺少逗号。else
没有if
...我摆脱了else
并将该代码置于while
循环之外。现在游戏似乎工作正常。这里有完整的固定代码:
import random
words = [
'burger',
'fettucine',
'lasanga',
'steak',
# commented out since you can't guess spaces
# 'garlic bread',
'watermelon',
'tea',
'pineapple',
'coffee',
# commented out since you can't guess spaces
# 'shrimp penne',
]
while True:
start = input("Press enter to start, or press Q to quit.")
if start.lower() == 'q':
break
secret_word = random.choice(words)
bad_guesses = []
good_guesses = []
while len(bad_guesses) < 10 and len(good_guesses) != len(list(secret_word)):
for letter in secret_word:
if letter in good_guesses:
print(letter, end='')
else:
print('_', end='')
print('')
print('Strikes: {}/10'.format(len(bad_guesses))) # this is what loops
print('')
guess = input("Guess a letter: ").lower()
if len(guess) != 1:
print("You can only guess one letter!")
continue
elif guess in bad_guesses or guess in good_guesses:
print("You have 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)
print("You didn't get it. The word was {}.".format(secret_word))