废话不多说,直接贴代码:
代码1
<pre><code>for i in range(5):
print i
i += 2
print i
print '一轮结束'</code></pre>
代码2
<pre><code>i = 0
while i < 5:
print i
i += 2
print i
print '一轮结束'</code></pre>
可以自行在大脑中yy一下这两段代码的结果,想一想是不是运行结果一样,还是不一样呢?然后看看下面的结果
代码1运行结果:
代码2运行结果:
我们来理解下为什么这两者的运行结果不一样,首先我们要明确一点,那就是range()函数实际上返回的是一个列表,而上述代码1中,for i in range(5)
,其实是i从[0, 1, 2, 3, 4]的列表中逐一取值,所以每轮都是新的赋值操作。
我们再来看一下range()函数
函数原型:range(start, end, scan):
参数含义:
- start:计数从start开始。默认是从0开始。例如range(5)等价于range(0, 5);
- end:技术到end结束,但不包括end。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
- scan:每次跳跃的间距,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
由此我们应该注意两点,首先明确range函数的概念