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