gCharlie = 0
gJeff = 0
def Bob ():
Charlie = gCharlie
Jeff = gJeff
Number = int(input("Hello and Welcome to Charlie's Number Guessing Game. Enter a nonnegative number from 0 to 10 not counting 0. "))
这段代码给出了python3.2中的错误:
^{pr2}$
这个局部变量误差是什么意思?在
Tags:
这可能是因为函数中有
gCharlie =
(注意:第一个字母是g
)。在使用参数而不是全局参数:
在函数的作用域内,必须重新分配gJeff和gCharlie,它们将它们创建为新的局部变量。要告诉python您正在使用全局变量,请将函数的顶部改为如下所示。在
在不告诉python您正在使用全局变量的情况下,它会尝试引用本地gCharlie和gJeff变量,正如它所说的那样,它们在您的函数中还没有被赋值。人们使用它的原因是他们只使用你发布的代码。只有在引用全局变量的函数中不更改它们的值时,才可以引用全局变量而不显式地这样说。在
通常,python按照以下顺序搜索变量名:local scope、它嵌套在其中的任何def、global、build-ins。因为gJeff和gCharlie是函数中的局部变量,它就到此为止了,除非你另有说明。在
如果你想看到这个,试着看看这个
^{pr2}$这将输出
因为在函数中,x被创建为一个新的局部变量。向useX函数添加一个全局x语句会将最后一行改为打印“0”而不是“5”
这意味着您在函数中没有显示的部分中赋值给}来求解。在
gCharlie
,因此Python编译器将其标记为局部变量。因此,你在它存在之前就访问了它。使用nonlocal
或{相关问题 更多 >
编程相关推荐