如果执行以下代码将显示错误消息:
UnboundLocalError:分配前引用的局部变量'a'
a = 220.0
b = 4300.0
c = 230.0/4300.0
def fun():
while (c > a/b):
a = a + 1
print a/b
if __name__ == '__main__':
fun()
但修改为:
a = 220.0
b = 4300.0
c = 230.0/4300.0
def fun():
aa = a
bb = b
while (c > aa/bb):
aa = aa + 1
print aa/bb
if __name__ == '__main__':
fun()
没关系。 任何建议或指示都会很棒。非常感谢!
答案 0 :(得分:9)
如果不使用global
语句,则无法修改全局变量:
def fun():
global a
while (c > a/b):
a = a + 1
print a/b
一旦python看到像a = a + 1
这样的赋值语句,它认为变量a
是局部变量,并且当调用该函数时,表达式c > a/b
将引发错误,因为{ {1}}尚未定义。