Python 如何在for循环中创建局部变量
我对编程非常陌生,我知道这是一个相当愚蠢的问题,但我不知道如何寻找答案 对于赋值,我们被限制为2个或更少的全局变量 我正在尝试这样做:Python 如何在for循环中创建局部变量,python,python-3.x,Python,Python 3.x,我对编程非常陌生,我知道这是一个相当愚蠢的问题,但我不知道如何寻找答案 对于赋值,我们被限制为2个或更少的全局变量 我正在尝试这样做: for x in range(0,5): etc, etc 我试过打印global(),我很确定这会使x成为一个全局变量-在这种情况下,有没有办法创建一个局部变量,还是我只需要解决它?在循环的作用域之外的作用域中不可能有循环变量,这仅仅是因为变量定义在与for循环相同的行/缩进中。如果的循环在全局范围内,则循环变量也在全局范围内。但是,如果您的限制仅限
for x in range(0,5):
etc, etc
我试过打印global(),我很确定这会使x成为一个全局变量-在这种情况下,有没有办法创建一个局部变量,还是我只需要解决它?在循环的作用域之外的作用域中不可能有循环变量,这仅仅是因为变量定义在与
for
循环相同的行/缩进中。如果的循环在全局范围内,则循环变量也在全局范围内。但是,如果您的限制仅限于全局变量,则可以将
的循环置于非全局范围内,例如函数,如下所示:
def loop():
for x in range(0, 5):
...
然而,这种变通方法可能与任务的精神背道而驰,因此请谨慎使用
值得注意的是,这种方法仍然会创建一个全局变量,在本例中是一个函数,但该变量是否计数可能取决于赋值的语义。“小心使用”更可能是“根本不使用”。x是局部作用于循环的,不是全局的。您试图实现的目标不清楚。给出一个较长的代码示例。局部变量不局限于for循环,而是局限于函数或方法。虽然不一定是global
@OneCricketeer,但您会发现x
仍在循环后的作用域中--它不局限于循环。在函数内更改时,全局变量由global
语句定义。挑战自己不要使用任何东西。从广义上讲,…“local”意味着函数的局部性。如果不使用任何函数,则变量将是全局变量。但是,这创建了一个名为loop
的全局变量。