为什么Python会说' foo'尽管我已经宣布它是全局的,但它是一个局部变量?

时间:2017-07-18 05:48:08

标签: python python-3.x python-3.6

我正在写一个小游戏,你会想到一个介于0到100之间的数字,计算机会尝试猜测它。以下是代码片段:

global

它抛出错误说:

  

UnboundLocalError:赋值前引用的局部变量'foo'

本网站上的其他帖子建议使用foo。我做了,但仍然收到错误。为什么Python说x++是一个局部变量,即使我已将其声明为全局变量?我如何摆脱这个错误?

1 个答案:

答案 0 :(得分:2)

global foo从全局范围移到函数内部,如下所示:

import random
foo=input()
k=random.randint(0,100)

def f():
    global foo
    global k
    if foo.lower()=='too low':
        k=random.randint(k,100)
        foo=input('The number that I guessed is' + ' ' + str(k) +'. Please give your comment.')
        print(k)