python有两种循环,while循环和for循环。
python循环的流程图如下:
python循环流程图while循环
python中while循环的一般形式是:
while 布尔表达式:
执行语句块
下面是一个while循环的例子:
i = 1
sum = 0
while i <= 10:
print ('进入while循环.')
print ('sum = %d, i = %d' % (sum, i))
sum = sum + i
i = i + 1
print ('出while循环.')
print ('sum = %d, i = %d' % (sum, i))
这个例子中,首先判断布尔表达式i <= 10
的值,第一次循环中i
的值为1,布尔表达式为真,因此进入while语句块。如果布尔表达式为假,则不会进入while语句块。
在执行完while中的语句块之后(i
此时的值为2),再次判断布尔表达式,布尔表达式为真,因此进入while语句块。
在第十次执行while语句块后,i
此时的值为11,再次判断布尔表达式,布尔表达式为假,因此不会进入while语句块。
例子中print()
函数在%
前的参数是格式化输出,%d
表示是一个整数;%
之后的是需要在%d
处输出的变量。
这个例子的输出如下:
进入while循环.
sum = 0, i = 1
进入while循环.
sum = 1, i = 2
进入while循环.
sum = 3, i = 3
进入while循环.
sum = 6, i = 4
进入while循环.
sum = 10, i = 5
进入while循环.
sum = 15, i = 6
进入while循环.
sum = 21, i = 7
进入while循环.
sum = 28, i = 8
进入while循环.
sum = 36, i = 9
进入while循环.
sum = 45, i = 10
出while循环.
sum = 55, i = 11
显然,这个例子算出了1-10的和。
无限循环
如果while语句中布尔表达式的值永远为真,则程序会进入死循环,除非强制停止程序或者断电。
下面是一个无限循环的例子(最好不要在你的电脑上执行这个例子):
i = 1
while True:
print ('%d: In while loop.' % (i))
i = i + 1
由于while语句中布尔表达式永远为真,因此i
会永远增长下去,直到系统崩溃、强制停止或者断电。
这个程序的输出样本如下:
1: In while loop.
2: In while loop.
3: In while loop.
4: In while loop.
...
24006: In while loop.
24007: In while loop.
24008: In while loop.
24009: In while loop.
...
虽然这个例子没什么意思,但是在一些场合死循环得到重要应用,比如嵌入式设备中,一些程序要在上电后开始执行,一直到断电。
break与continue
break语句跳出循环。
continue语句结束本次循环,进入下一次循环。
下面是break语句的一个例子:
while True:
command = input ('请输入命令(q-跳出):')
if command == 'q':
print ('跳出循环.')
break
print ('执行命令: %s' % (command))
print ('退出程序.')
exit ()
虽然while循环是死循环,但是在用户输入'q'
后,输出'跳出循环.'
,然后执行break
:程序会跳出这个循环。跳出循环后,输出'退出程序.'
,然后结束程序。
如果用户输入其他内容,程序会输出'执行命令:'
,后面重复用户输入的内容。
这个程序的输出如下:
$ python inf_loop_break.py
请输入命令(q-跳出):asdf
执行命令: asdf
请输入命令(q-跳出):1234
执行命令: 1234
请输入命令(q-跳出):q
跳出循环.
退出程序.
continue语句并不会跳出循环,而是会结束本次循环,进入下一次循环。如果continue
语句得到了执行,则循环语句块中continue
语句之后的内容不会得到执行。
下面是一个continue语句的例子:
while True:
command = input ('请输入指令(q-跳出):')
if command[0] == '#':
continue
if command == 'q':
print ('跳出循环.')
break
print ('执行命令: %s' % (command))
print ('退出程序.')
exit ()
这个例子与上个例子的区别是,如果用户的输入以'#'
开始,则会跳出本次循环,执行下次循环。
下面是这个例子的一个输出样本:
$ python inf_loop_continue.py
请输入指令(q-跳出):apple
执行命令: apple
请输入指令(q-跳出):65432
执行命令: 65432
请输入指令(q-跳出):# china
请输入指令(q-跳出):# -+]\
请输入指令(q-跳出):CCTV
执行命令: CCTV
请输入指令(q-跳出):q
跳出循环.
退出程序.
for循环
for循环的一般形式如下:
for 变量 in 序列:
执行语句块
for循环的例子如下:
Permanent_Members = ['中国', '美国', '俄罗斯', '英国', '法国']
i = 1
print ('联合国安全理事会常任理事国:')
for nation in Permanent_Members:
print ('%d: %s' % (i,nation))
i = i + 1
变量Permanent_Members
是一个列表,在for语句中,变量nation
会依次遍历Permanent_Members
中的元素,它的执行结果如下:
$ python for_loop.py
联合国安全理事会常任理事国:
1: 中国
2: 美国
3: 俄罗斯
4: 英国
5: 法国
range()
range()
函数生成数列:
>>> for i in range (5):
... print (i)
...
0
1
2
3
4
range()
函数也可以创建一个列表:
>>> list (range(5))
[0, 1, 2, 3, 4]
使用range()
生成指定区间的值:
>>> list (range(3,7))
[3, 4, 5, 6]
range()
还可以指定增量:
>>> list (range(3,10,2))
[3, 5, 7, 9]
如果想要使用下标作为循环变量,则可以使用range()
函数:
Permanent_Members = ['中国', '美国', '俄罗斯', '英国', '法国']
print ('联合国安全理事会常任理事国:')
for i in range(len(Permanent_Members)):
print ('%d: %s' % (i+1,Permanent_Members[i]))
嵌套循环
循环也可以嵌套:
population = [['china','1,389,340,000'],['India','1,328,160,000'],['United States','326,661,000']]
print ('国家及人口:')
print ('--------------')
for nation in population:
print (nation)
for elem in nation:
print (elem)
print ('--------------')
执行结果如下:
$ python nested_loop.py
国家及人口:
--------------
['china', '1,389,340,000']
china
1,389,340,000
--------------
['India', '1,328,160,000']
India
1,328,160,000
--------------
['United States', '326,661,000']
United States
326,661,000
--------------
网友评论