Python 关于while循环的一般学习问题

Python 关于while循环的一般学习问题,python,while-loop,Python,While Loop,下面是基本代码。我以为spam=spam+1会将1添加到局部变量spam中,但它似乎会将其添加到全局变量spam中(或者为什么要从全局变量spam=0开始)。我认为局部变量只存在于函数中(从冒号开始)。考虑到局部/全局作用域,这似乎不应该起作用 spam = 0 while spam < 5: print('Hello, world.') spam = spam + 1 spam=0 当垃圾邮件

下面是基本代码。我以为spam=spam+1会将1添加到局部变量spam中,但它似乎会将其添加到全局变量spam中(或者为什么要从全局变量spam=0开始)。我认为局部变量只存在于函数中(从冒号开始)。考虑到局部/全局作用域,这似乎不应该起作用

  spam = 0
    while spam < 5:
        print('Hello, world.')
        spam = spam + 1
spam=0
当垃圾邮件<5时:
打印(“你好,世界。”)
垃圾邮件=垃圾邮件+1

while循环不会创建新的作用域。作用域仅由函数和类定义建立。
while
循环不是函数定义


因此
spam=0
spam=spam+1
语句在同一范围内,因为它们都没有函数定义。

这里没有函数。函数以一行开头
def functionname(parameters):
spam
共享同一名称空间。首先,您的代码结构不好,我想,我看不出缩进
的意义。其次,您没有局部变量,
spam
是在
while
范围之外定义的。最后,您没有函数,
只定义了一个范围。我完全理解并从您的所有输入中学习了谢谢。
spam+=1
spam=spam+1
更好。非常感谢您的正面和直接的回答。我知道我的问题并不完美,但你的回答非常接近我需要学习的东西。我真的很感激。