我是Python的新手,但是很难理解以下While循环代码,因为它的行为截然不同。我知道此代码有效,但不知道如何工作。顶尖的Python专家也不知道。
x = 1
while x < 10:
print x
x = x + 1 ## How does this VAR manipulate Print as the VAR comes late in the code?
我不知道这是否与控制流或全局变量有关。请帮我更深入地了解。
答案 0 :(得分:0)
x = 1 #Declares the variable
while x < 10: #checks whether the value of x is less than 10 every time the loop runs
print x #prints value of x for the each iterations(1 for first iteration, 2 for second and so on)
x = x + 1 #this is the update part
让我再告诉您一件事,您这里没有任何全局变量的情况。
如果您在理解其全局或局部声明时遇到麻烦,建议您遵循此link
答案 1 :(得分:0)
我相信您的问题与范围有关。在上面的示例中,在第一行创建了var x
的新内存地址,并且访问x
的第2、3、4行上的任何代码都可以对该变量进行读/写。
这里我们只需要遵循两个规则:
x
必须在print
之前声明,以便打印件可以访问该内存print
必须在相同或内部范围内才能访问“ x” 示例1-有效(因为我们遵循规则1和2)
x = 1
print x
示例2-有效(因为我们遵循规则1和2)
x = 1
while x < 10:
print x
x = x + 1
示例3-有效(因为我们遵循规则1和2)
x = 1
while x < 10:
print x
x = x + 1
print x
示例4-无效(因为我们未遵循规则1并且print
正在访问尚未在内存中创建的变量)
print x
x = 1
示例5-无效(因为我们不遵循规则2并且print
无法访问我们变量的范围,x
在内存中不再存在)
y = 1
while y < 5:
x = 1
y = y + 1
print x
您最好通过练习1 阅读variable lifetime and scope in python上的整个章节,以获取良好的练习。