前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python循环执行

python循环执行

作者头像
mwangblog
发布2018-07-04 14:37:29
1.7K0
发布2018-07-04 14:37:29
举报
文章被收录于专栏:mwangblogmwangblog

python有两种循环,while循环和for循环。

python循环的流程图如下:

本文目录

  • 1 while循环
  • 2 无限循环
  • 3 break与continue
  • 4 for循环
  • 5 range()
  • 6 嵌套循环

while循环

python中while循环的一般形式是:

代码语言:javascript
复制
while 布尔表达式:
    执行语句块

下面是一个while循环的例子:

代码语言:javascript
复制
i = 1sum = 0while i <= 10:
    print ('进入while循环.')
    print ('sum = %d, i = %d' % (sum, i))
    sum = sum + i
    i = i + 1print ('出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处输出的变量。

这个例子的输出如下:

代码语言:javascript
复制
进入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语句中布尔表达式的值永远为真,则程序会进入死循环,除非强制停止程序或者断电。

下面是一个无限循环的例子(最好不要在你的电脑上执行这个例子):

代码语言:javascript
复制
i = 1while True:
    print ('%d: In while loop.' % (i))
    i = i + 1

由于while语句中布尔表达式永远为真,因此i会永远增长下去,直到系统崩溃、强制停止或者断电。

这个程序的输出样本如下:

代码语言:javascript
复制
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语句的一个例子:

代码语言:javascript
复制
while True:
    command = input ('请输入命令(q-跳出):')
    if command == 'q':
        print ('跳出循环.')
        break
    print ('执行命令: %s' % (command))print ('退出程序.')exit ()

虽然while循环是死循环,但是在用户输入'q'后,输出'跳出循环.',然后执行break:程序会跳出这个循环。跳出循环后,输出'退出程序.',然后结束程序。

如果用户输入其他内容,程序会输出'执行命令:',后面重复用户输入的内容。

这个程序的输出如下:

代码语言:javascript
复制
$ python inf_loop_break.py 
请输入命令(q-跳出):asdf
执行命令: asdf
请输入命令(q-跳出):1234
执行命令: 1234
请输入命令(q-跳出):q
跳出循环.
退出程序.

continue语句并不会跳出循环,而是会结束本次循环,进入下一次循环。如果continue语句得到了执行,则循环语句块中continue语句之后的内容不会得到执行。

下面是一个continue语句的例子:

代码语言:javascript
复制
while True:
    command = input ('请输入指令(q-跳出):')
    if command[0] == '#':
        continue
    if command == 'q':
        print ('跳出循环.')
        break
    print ('执行命令: %s' % (command))print ('退出程序.')exit ()

这个例子与上个例子的区别是,如果用户的输入以'#'开始,则会跳出本次循环,执行下次循环。

下面是这个例子的一个输出样本:

代码语言:javascript
复制
$ python inf_loop_continue.py
请输入指令(q-跳出):apple
执行命令: apple
请输入指令(q-跳出):65432
执行命令: 65432
请输入指令(q-跳出):# china
请输入指令(q-跳出):# -+]\
请输入指令(q-跳出):CCTV
执行命令: CCTV
请输入指令(q-跳出):q
跳出循环.
退出程序.

for循环

for循环的一般形式如下:

代码语言:javascript
复制
for 变量 in 序列:
    执行语句块

for循环的例子如下:

代码语言:javascript
复制
Permanent_Members = ['中国', '美国', '俄罗斯', '英国', '法国']i = 1print ('联合国安全理事会常任理事国:')for nation in Permanent_Members:
    print ('%d: %s' % (i,nation))
    i = i + 1

变量Permanent_Members是一个列表,在for语句中,变量nation会依次遍历Permanent_Members中的元素,它的执行结果如下:

代码语言:javascript
复制
$ python for_loop.py 
联合国安全理事会常任理事国:
1: 中国
2: 美国
3: 俄罗斯
4: 英国
5: 法国

range()

range()函数生成数列:

代码语言:javascript
复制
>>> for i in range (5):...     print (i)... 01234

range()函数也可以创建一个列表:

代码语言:javascript
复制
>>> list (range(5))[0, 1, 2, 3, 4]

使用range()生成指定区间的值:

代码语言:javascript
复制
>>> list (range(3,7))[3, 4, 5, 6]

range()还可以指定增量:

代码语言:javascript
复制
>>> list (range(3,10,2))[3, 5, 7, 9]

如果想要使用下标作为循环变量,则可以使用range()函数:

代码语言:javascript
复制
Permanent_Members = ['中国', '美国', '俄罗斯', '英国', '法国']print ('联合国安全理事会常任理事国:')for i in range(len(Permanent_Members)):
    print ('%d: %s' % (i+1,Permanent_Members[i]))

嵌套循环

循环也可以嵌套:

代码语言:javascript
复制
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 ('--------------')

执行结果如下:

代码语言:javascript
复制
$ 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
--------------
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-02-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 mwangblog 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • while循环
  • 无限循环
  • break与continue
  • for循环
  • range()
  • 嵌套循环
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档