迭代,简单说就是指重复去运行一部分代码。递归,for循环,while循环都是迭代的一种。
一,While循环
看个例子,倒计时函数countdown:
$ cat a.py
#!/bin/python
def countdown(n):
while n > 0:
print(n)
n = n - 1
countdown(5)
print('loop over')
$ python a.py
5
4
3
2
1
loop over
这个函数的意思是:当n大于0,就输出n的值,然后对n减1,递减的n > 0则继续执行循环,否则结束循环;
从5开始,每循环一次,递减1,当执行完1 = 1 -1 的时候,即n等于0的时候,不再满足判断条件 n > 0,程序到这儿就结束了,而后打印输出单词loop over。
二,中断
有时候你不知道啥时候终止循环,可能正好在中间循环体的时候要终止了。这时候你就可以用break语句来跳出循环。 比如,假设你要让用户输入一些内容,当他们输入done的时候结束。你就可以用如下的方法实现:
cat a.py
#!/bin/python
while True:
line = input('> ') #如果在终端输入的时候,不想带单引'',在python2中这个input函数需要用raw_input() ,python3中直接使用input(),在输入的时候也不用带引号。
if line == 'done':
break
print(line)
print('Done!')
$ python a.py
> 'jack'
> 'tom'
> 'done'
Done!
这种while循环的写法很常见,因为这样你可以在循环的任何一个部位对条件进行检测,而不仅仅是循环的头部,你可以准确地表达循环停止的条件。