因此,下面的基本代码。我以为spam = spam + 1会将1添加到局部变量spam,但似乎将其添加到全局变量(否则为什么要从全局变量spam = 0开始)。我以为局部变量仅存在于函数中(从冒号开始)。考虑到局部/全局范围,这似乎不起作用?
spam = 0
while spam < 5:
print('Hello, world.')
spam = spam + 1
答案 0 :(得分:3)
while
循环不会创建新的作用域。作用域仅通过函数和类定义来建立。 while
循环不是函数定义。
由于spam = 0
和spam = spam + 1
语句之间没有函数定义,因此它们在同一范围内。