python中的python2.7.6 UnboundLocalError

python中的python2.7.6 UnboundLocalError,python,python-2.7,Python,Python 2.7,嘿,我正在为班级做一个python游戏,我已经犯了这个错误,这个错误已经困扰了我好几天了。下面是我遇到问题的代码部分。我也不知道如何让所有的字母都留在列表中。我需要修复什么才能按我需要的方式运行 def update (blanks, letter, word): if letter in word: for i in range (len(blists)): if letter == word[i]: blists[i] = word[i]

嘿,我正在为班级做一个python游戏,我已经犯了这个错误,这个错误已经困扰了我好几天了。下面是我遇到问题的代码部分。我也不知道如何让所有的字母都留在列表中。我需要修复什么才能按我需要的方式运行

def update (blanks, letter, word):
if letter in word:
    for i in range (len(blists)):
        if letter == word[i]:
            blists[i] = word[i]
            bstring = ''.join(blists)
return bstring

word = 'tomato'
letter = raw_input ('Please guess a letter. ')

blanks = '_' * len(word)
blists = list(blanks)
bstring = ''.join(blists)
wrong = ''
correct = ''

while True:
    blanks = '_' * len(word)
    blists = list(blanks)
    bstring = ''.join(blists)
    blanks_str = ''.join(blists)
    letter = raw_input ('Please guess a letter. ')
    i = update (blanks, letter, word) 
    print i
编辑:
我得到的错误是一个UnboundLocalError。当while循环启动update函数并且bstring是错误时,就会发生这种情况。它也不能做我想让它做的事。我希望它显示字符串上的单词,无论是正确的还是错误的。我希望它类似于hangman游戏的输出,它给出的错误消息是

Traceback (most recent call last):
  File "hangman.py", line 24, in <module>
    i = update (blanks, letter, word) 
  File "hangman.py", line 7, in update
    return bstring
UnboundLocalError: local variable 'bstring' referenced before assignment
如果我没记错的话,您可以为它赋值这一事实意味着它将创建为局部变量,除非您显式地将其声明为全局变量。当您返回它时,如果您没有分配它,它会看到一个未分配的局部变量,因此会出现错误


至少我认为是这样的。当我加入全球宣言时,它对我起了作用

那有什么问题?你收到错误信息了吗?告诉我们消息。它做不到你想要的?你想要什么?它的作用是什么?
global bstring