Error in Python: local variable 'letter' referenced before assignment -


i working in python , creating hangman game

    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):     # function returns random string 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=' ')     letter in missedletters:        print(letter, end=' ')     print()      blanks='_'*len(secretword)      in range(len(secretword)):# replace blanks correctly guessed letters        if secretword[i] not in correctletters:           blanks = blanks[:i] + secretword[i] + blanks[i+1:]      letters in blanks:       print(letter, end='')     print()  def getguess(alreadyguessed):      while true:       print('guess letter')       guess= input()       guess=guess.lower()       if len(guess)!= 1:          print('please enter single letter.')       elif guess in alreadyguessed:          print('you have guessed letter. guess again.')       elif guess not in'abcdefghijklmnopqrstuvwxyz':          print('please enter letter.')       else:          return guess  def playagain():     print('do want play again?(yes or no)')    return input().lower().startswith('y')   print('h n g m 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       in range(len(secretword)):          if secretword[i] not in correctletters:                foundallletters = false             break       if foundallletters:          print('yes! secret word "' + secretword + '"! have won!')          gameisdone = true   else:      missedletters = missedletters + guess  # check if player has guessed many times , 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 , ' + str(len(correctletters)) + ' correct guesses, word "' + secretword + '"')         gameisdone= true     if gameisdone:      if playagain():         missedletters = ''         correctletters= ''         gameisdone = false         secretword = getrandomword(words)      else:         break 

but on executing showing error

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 

for letters in blanks:       print(letter, end='') 

in loop write letters , later use letter. make

for letter in blanks:       print(letter, end='') 

Comments