Python中的错误:局部变量';字母';分配前参考
我在Python中工作,正在制作一款刽子手游戏Python中的错误:局部变量';字母';分配前参考,python,Python,我在Python中工作,正在制作一款刽子手游戏 import random HANGMANPICS = [''' '''] words = 'ant baboon badger bat bear beaver camel cat clam cobra cougar coyote crow deer dog donkey duck eagle ferret fox frog goat goose hawk lion lizard llama mole monkey moose mouse
import random
HANGMANPICS = [''' ''']
words = 'ant baboon badger bat bear beaver camel cat clam cobra cougar coyote crow deer dog donkey duck eagle ferret fox frog goat goose hawk lion lizard llama mole monkey moose mouse mule newt otter owl panda parrot pigeon python rabbit ram rat raven rhino salmon seal shark sheep skunk sloth snake spider stork swan tiger toad trout turkey turtle weasel whale wolf wombat zebra'.split()
def getRandomWord(wordList):
# This function returns a random string from the passed list of strings.
wordIndex = random.randint(0,len(wordList) - 1)
return wordList[wordIndex]
def displayBoard(HANGMANPICS,missedLetters,correctLetters,secretWord):
print(HANGMANPICS[len(missedLetters)])
print()
print('Missed letters:', end=' ')
for letter in missedLetters:
print(letter, end=' ')
print()
blanks='_'*len(secretWord)
for i in range(len(secretWord)):# replace blanks with correctly guessed letters
if secretWord[i] not in correctLetters:
blanks = blanks[:i] + secretWord[i] + blanks[i+1:]
for letters in blanks:
print(letter, end='')
print()
def getGuess(alreadyGuessed):
while True:
print('Guess a Letter')
guess= input()
guess=guess.lower()
if len(guess)!= 1:
print('Please enter a single letter.')
elif guess in alreadyGuessed:
print('You have already guessed that letter. Guess Again.')
elif guess not in'abcdefghijklmnopqrstuvwxyz':
print('Please enter a LETTER.')
else:
return guess
def playAgain():
print('Do you want to play Again?(yes or no)')
return input().lower().startswith('y')
print('H A N G M A N')
missedLetters = ''
correctLetters = ''
secretWord= getRandomWord(words)
gameIsDone= False
while True:
displayBoard(HANGMANPICS, missedLetters, correctLetters, secretWord)
guess= getGuess(missedLetters + correctLetters)
if guess in secretWord:
correctLetters= correctLetters + guess
foundAllLetters = True
for i in range(len(secretWord)):
if secretWord[i] not in correctLetters:
foundAllLetters = False
break
if foundAllLetters:
print('Yes! The secret word is "' + secretWord + '"! You have won!')
gameIsDone = True
else:
missedLetters = missedLetters + guess
# Check if player has guessed too many times and lost
if len(missedLetters)==len(HANGMANPICS)- 1:
displayBoard(HANGMANPICS, missedLetters, correctLetters, secretWord)
print('You have run out of guesses!\nAfter ' + str(len(missedLetters)) + ' missed guesses and ' + str(len(correctLetters)) + ' correct guesses, the word was "' + secretWord + '"')
gameIsDone= True
if gameIsDone:
if playAgain():
missedLetters = ''
correctLetters= ''
gameIsDone = False
secretWord = getRandomWord(words)
else:
break
但在执行时,它显示的错误是
Traceback (most recent call last):
File "E:\Python 3\hangman.py", line 114, in <module>
displayBoard(HANGMANPICS, missedLetters, correctLetters, secretWord)
File "E:\Python 3\hangman.py", line 83, in displayBoard
print(letter, end='')
UnboundLocalError: local variable 'letter' referenced before assignment
回溯(最近一次呼叫最后一次):
文件“E:\Python 3\hangman.py”,第114行,在
显示板(挂图、漏字、更正字母、加密字)
文件“E:\Python 3\hangman.py”,第83行,在显示板中
打印(字母,结尾=“”)
UnboundLocalError:赋值前引用的局部变量“字母”
在循环中,您编写字母
,然后使用字母
。就这样
for letter in blanks:
print(letter, end='')
谢谢你的回答。
for letter in blanks:
print(letter, end='')