在Python里,while语句是最常见的循环语句。先看一下while语句的一般格式:
while <test1>:
<statement1>
else:
<statement2>
只要测试语句为真,会一直循环。当test1为假的时候会运行else语句里的内容。 从这里,退出循环的方法有:
1、在里的语句更改的结果为False
2、在里的语句里增加break语句来跳出循环
3、在里的语句里增加exit()来退出Python,这种方法将退出整个Python程序。
死循环:
while True:
print 'Please type "Control" + "C" to stop this'
这个循环会在你屏幕上一直打印重复的语句,使用Control +C的组合键可以退出。
>>> a = 0 ; b = 7
>>> while a < b :
... print(a,end=' ')
... a += 1
...
0 1 2 3 4 5 6 >>>
break语句是用来退出最近所在的for语句或while语句。
continue语句是用来跳到最近所在的for语句或者while语句的结尾。
>>> a = 0 ; b = 7
>>> while a < b :
... a += 1
... if a == 3 : continue
... if a == 6 : break
... print(a,end=' ')
...
1 2 4 5 >>>
之前讲过,pass语句是占位的空语句。因为有些时候(测试时)需要写框架,但里面没有具体语句,但需要正常运行的时候,就需要设置空语句(pass)来代替。
>>> if 1 :
... print('DoraEmon')
... else :
...
File "<stdin>", line 4^
IndentationError: expected an indented block
在这个时候我们需要一个pass来替代else自语句里的空。
>>> if 1 :
... print('DoraEmon')
... else :
... pass
...
DoraEmon
else语句,只有在for语句和while语句正常结束后,会运行:
>>> a = 0 ; b = 7
>>> while a < b :
... print(a,end = ' ')
... a += 1
... else :
... print('DoraEmon')
...
0 1 2 3 4 5 6 DoraEmon
但中间有break的时候,就不会执行else
>>> while True :
... print('Dora')
... break
... else :
... print('Emon')
...
Dora
else语句能帮助你在语句正常执行时插一句。
for语句在Python里是一个通用的序列迭代器:可以遍历任何有序的序列对象内的元素。可用于字符串、列表、元祖、其它内置可迭代对象以及之后我们能够通过类所创建的新对象。 一般格式:
for <target> in <object>:
<statements>
else:
<statements>
在这里object 需是可迭代的对象。每次从object里提取一个元素赋给target,之后循环之行statements里的语句。
使用for循环时,其它开发语言(比如C)会使用一个变量,定义起始,结束,递增值。但Python里只能做迭代。这个时候可以使用range函数来代替。
range函数格式: range([起始值],结束值,[递增值])
在这里,起始值默认是0,递增值默认为1。C语言里for(i=0,i<7,i++)可以写成 for i in range(0,7,1)。因为起始的0与递增值1可以省略,可以写成for i in range(7)。
>>> for i in range(7) :
... print(i,end = ' ')
...
0 1 2 3 4 5 6 >>>
迭代后的元素为固定长度的元祖、列表的时候:
>>> for a,b,c in [(1,2,3),(4,5,6),(7,8,9)] :
... print(a,b,c)
...
1 2 34 5 67 8 9
嵌套循环(不一定是固定长度):
>>> for i in [(1,2,3),(4,5,6),(7,8,9)] :
... for j in i :
... print(j,end = ' ')
... print() #起到换行作用
...
1 2 3
4 5 6
7 8 9