循环
有时候需要我们执行大量相同代码,这时候就需要循环来帮忙了,py提供两种循环方式“while”和"for"。
while
while运算首先检查它的运算条件(while和:之间),如果为真,它就执行它的代码块,然后再次检查他的运算条件,看运算条件是否仍为真,如果是,将重复执行以上步骤,如果为否,py将离开缩进部分代码,继续执行下面的代码。一般使用一个变量作为运算条件:
>>> i = 10;
>>> while i:
print("now, i is:")
print(i)
i = i - 1
now, i is:
10
now, i is:
9
now, i is:
8
now, i is:
7
now, i is:
6
now, i is:
5
now, i is:
4
now, i is:
3
now, i is:
2
now, i is:
1
当i变为0时,判断条件为否,退出循环。
for...in...
它和while非常相似,但它整合了用变量控制循环的功能,在第一部分for中,创建了一个变量,在第二部分in中,提供一个序列(列表,元组),或range:
>>> for i in range(5,0,-1):
print("now, i is:")
print(i)
i = i - 1
now, i is:
5
now, i is:
4
now, i is:
3
now, i is:
2
now, i is:
1
range里的三个值表示i的起始值,终止值,和步长(也就是梅运行一次就给i加上这个值)。range有一个缩略版本:
>>> for i in range(3):
print("now, i is:")
print(i)
i = i - 1
now, i is:
0
now, i is:
1
now, i is:
2
可以只给range一个值,这时起始值默认为0,步长默认为1,提供的值作为终止值。
用列表循环:
>>> for i in a:
print("now, i is:")
print(i)
now, i is:
2
now, i is:
13
now, i is:
7
now, i is:
2
now, i is:
1
循环次数为列表长度,将列表中的值依次赋给i。
终止循环和继续循环
“无穷循环”指的是一段永远重复的代码,简单的例子:
while True:
.......
这样的代码也有其意义,但如何退出就是个大问题,py提供了break关键词用来退出循环。
i = 10
>>> while(i):
if i == 5:
break
print("now, i is:")
print(i)
i = i - 1
now, i is:
10
now, i is:
9
now, i is:
8
now, i is:
7
now, i is:
6
当i等于5时满足了if的条件,成功跳出了循环。注意break只能跳出一层循环:
>>> for i in range(5):
print(i);
for l in range(5):
break
print("break")
0
1
2
3
4
break跳出了l的循环,但还是在执行i的循环。
我们还可以用continue继续循环,继续循环指跳过循环代码块剩余部分,直接开始下一轮循环:
>>> a = (2,13,7,2,1)
>>> for i in a:
if i == 2:
continue
print("now, i is:")
print(i)
now, i is:
13
now, i is:
7
now, i is:
1
当i等于2的情况都被跳过了。
循环和else
可以在循环后跟上一个else,用于处理循环一次也没有被执行的情况:
<pre name="code" class="python">>>> while False:
break
else:
print("nothing has been done")
nothing has been done
注意,哪怕之执行一个break也算作循环被执行了:
>>> while True:
break
else:
print("nothing has been done")