我正在学习初学者编程课的最后一部分。我在中期收到了这个问题。我说的答案是1,但是,答案实际上是0.我想知道是否有人可以向我解释为什么它是0.是否因为z最初分配给0?我不知道如何通过这个有限的代码来判断它是否是局部变量。感谢您提供的任何帮助!在for循环外打印一个值
z=0
for x in range(1, 200, -1):
z=z+1
print(z)
我正在学习初学者编程课的最后一部分。我在中期收到了这个问题。我说的答案是1,但是,答案实际上是0.我想知道是否有人可以向我解释为什么它是0.是否因为z最初分配给0?我不知道如何通过这个有限的代码来判断它是否是局部变量。感谢您提供的任何帮助!在for循环外打印一个值
z=0
for x in range(1, 200, -1):
z=z+1
print(z)
没有元素在range(1, 200, -1)
,循环没有开始。所以z
从未改变它的价值。
阅读有关步骤(范围第三个参数)精氨酸这里:
https://docs.python.org/2/library/functions.html#range
一个很好的方法,看看这是转换的范围内列出:
print(list(range(1, 200, -1)))
>>> []
你应该测试一下在你的翻译。循环从不进行迭代。想想什么在增加。
您的范围是1到200,但您选择从1开始的每个步骤增加-1,所以在此情况下不能向后移动。
它保持为零,因为范围是1,200,但是您正在步进-1,因此for循环内的表达式从未实际执行。
它与变量作用域没有任何关系。将范围改为(1,200,1),观察结果,我想你会有一个麻烦的时刻。 – 2014-12-07 23:33:29