廢話不多說枫弟,直接貼代碼:
代碼1
<pre><code>for i in range(5):
print i
i += 2
print i
print '一輪結(jié)束'</code></pre>
代碼2
<pre><code>i = 0
while i < 5:
print i
i += 2
print i
print '一輪結(jié)束'</code></pre>
可以自行在大腦中yy一下這兩段代碼的結(jié)果省有,想一想是不是運(yùn)行結(jié)果一樣岩饼,還是不一樣呢?然后看看下面的結(jié)果
代碼1運(yùn)行結(jié)果:
代碼2運(yùn)行結(jié)果:
我們來理解下為什么這兩者的運(yùn)行結(jié)果不一樣亡蓉,首先我們要明確一點(diǎn)般此,那就是range()函數(shù)實際上返回的是一個列表跷车,而上述代碼1中区丑,for i in range(5)
峡谊,其實是i從[0, 1, 2, 3, 4]的列表中逐一取值,所以每輪都是新的賦值操作刊苍。
我們再來看一下range()函數(shù)
函數(shù)原型:range(start, end濒析, scan):
參數(shù)含義:
- start:計數(shù)從start開始正什。默認(rèn)是從0開始。例如range(5)等價于range(0号杏, 5);
- end:技術(shù)到end結(jié)束婴氮,但不包括end斯棒。例如:range(0, 5) 是[0, 1, 2, 3, 4]沒有5
- scan:每次跳躍的間距主经,默認(rèn)為1荣暮。例如:range(0, 5) 等價于 range(0, 5, 1)
由此我們應(yīng)該注意兩點(diǎn)罩驻,首先明確range函數(shù)的概念