0
无限地触发循环,我无法修复它。 Python新手如此宽容任何菜鸟的错误。还没有完全理解语法,但我只有三天的时间。我认为这是因为缩进,但我不确定。提前致谢!'无限次打印{/ 10'}
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))
解决您的压痕!它循环,因为它在'while len(bad_guesses)'子句中。 –
While循环('while len(bad_guesses)<10和len(good_guesses)!= len(list(secret_word))')中的任何内容都会更改,因此循环将无限期地继续。你可能意味着在循环中也有'guess = ...'行(然后执行更新'good_guesses'和'bad_guesses')。 – smarx
哦,我刚刚看到有更多的代码在问题中没有正确格式化。也许这个代码也属于while循环?首先修复你的问题的格式。只需复制/粘贴您的实际代码,然后突出显示它,然后单击“{}”按钮将其格式化为代码。这样可以保留你所有的缩进。 – smarx