在for循环之外打印一个值

时间:2014-12-07 23:27:19

标签: python

我正在攻读初学者编程课程的决赛。我的期中考试错了。我说答案是1,然而,答案实际上是0.我想知道是否有人可以向我解释为什么它是0.是因为z最初分配给0?我不知道如何判断它是否是具有此有限代码的局部变量。感谢您提供的任何帮助!

z=0
for x in range(1, 200, -1):
    z=z+1
print(z)

3 个答案:

答案 0 :(得分:4)

range(1, 200, -1)没有元素,循环甚至没有启动。所以z从未改变其价值。

在这里阅读步骤(范围的第三个arg):

https://docs.python.org/2/library/functions.html#range

看到这个的好方法是将范围转换为列表:

print(list(range(1, 200, -1)))
>>> []

答案 1 :(得分:1)

你应该在翻译中测试一下。循环永远不会进行迭代。想想正在增加的内容。

您的范围是1到200,但是您选择从1开始的每一步增加-1,因此在这种情况下您不能向后移动。

答案 2 :(得分:1)

它保持为零,因为范围是1,200但是你步进-1,所以for循环中的表达式永远不会实际执行。