0
s = 0

for s in xrange(0, 100):
    print "s before", s
    if s % 10 == 0:
        s += 10
    print "s after", s

loop1 的结果

s = 0

while s < 100:
    print "s before", s
    if s % 10 == 0:
        s += 10
    s += 1
    print "s after", s

循环2的结果

如上图所示,为什么这两个循环做类似的事情,一个使用 xrange 而另一个使用 while-loop 却给了我完全不同的输出?

4

1 回答 1

1

s在第一个循环中被来自的值覆盖,xrange(0, 100)而在第二个 for 循环中,您手动初始化变量s=0,然后使用s += 10. 所以,这正是预期的行为。

您需要查看 python 中的变量范围。检查此讨论:范围规则的简短描述?

于 2017-08-09T08:36:45.317 回答