Python初学者入门随笔 06 Python 循环语句

Python 循环语句

程序在一般情况下是按顺序执行的。
编程语言提供了各种控制结构,允许更复杂的执行路径。
循环语句允许我们执行一个语句或语句组多次,下面是在大多数编程语言中的循环语句的一般形式:


image.png

Python 提供了 for 循环和 while 循环(在 Python 中没有 do..while 循环):

循环类型 描述
while 循环 在给定的判断条件为 true 时执行循环体,否则退出循环体。
for 循环 重复执行语句
嵌套循环 你可以在 while 循环体中嵌套 for 循环

循环控制语句

循环控制语句可以更改语句执行的顺序。Python 支持以下循环控制语句:

控制语句 描述
break 语句 在语句块执行过程中终止循环,并且跳出整个循环。
continue 语句 在语句块执行过程中终止当前循环,跳出该次循环,执行下一次循环。
pass 语句 pass是空语句,是为了保持程序结构的完整性。

Python While 循环语句

Python 编程中 while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。其基本形式为:

while 判断条件:
    执行语句……

执行语句可以是单个语句或语句块。判断条件可以是任何表达式,任何非零、或非空(null)的值均为 true。
当判断条件假 false 时,循环结束。
执行流程图如下:


image.png

Gif 演示 Python while 语句执行过程:


image.gif

实例:
# -*- coding: UTF-8 -*-
count = 0
while count < 9:
    print 'The count is:', count
    count = count + 1

print "Good bye!"

以上代码执行输出结果:

The count is: 0
The count is: 1
The count is: 2
The count is: 3
The count is: 4
The count is: 5
The count is: 6
The count is: 7
The count is: 8
Good bye!

while 语句时还有另外两个重要的命令 continue,break 来跳过循环,continue 用于跳过该次循环,break 则是用于退出循环,此外"判断条件"还可以是个常值,表示循环必定成立,具体用法如下:

# -*- coding: UTF-8 -*-
# continue 和 break 用法

i = 1
while i < 10:
    i += 1
    if i % 2 > 0:  # 非双数时跳过输出
        continue
    print i  # 输出双数2、4、6、8、10

i = 1
while 1:  # 循环条件为1必定成立
    print i  # 输出1~10
    i += 1
    if i > 10:  # 当i大于10时跳出循环
        break

无限循环

如果条件判断语句永远为 true,循环将会无限的执行下去,如下实例:

# -*- coding: UTF-8 -*-
var = 1
while var == 1:  # 该条件永远为true,循环将无限执行下去
    num = raw_input("Enter a number  :")
    print "You entered: ", num

print "Good bye!"

注意:以上的无限循环你可以使用 CTRL+C 来中断循环。

循环使用 else 语句

在 python 中,while … else 在循环条件为 false 时执行 else 语句块:

# -*- coding: UTF-8 -*-
count = 0
while count < 5:
    print count, " is  less than 5"
    count = count + 1
else:
    print count, " is not less than 5"

以上实例输出结果为:

0  is  less than 5
1  is  less than 5
2  is  less than 5
3  is  less than 5
4  is  less than 5
5  is not less than 5

简单语句组

类似 if 语句的语法,如果你的 while 循环体中只有一条语句,你可以将该语句与while写在同一行中, 如下所示:

# -*- coding: UTF-8 -*-
flag = 1

while flag: print 'Given flag is really true!'

print "Good bye!"

注意:以上的无限循环你可以使用 CTRL+C 来中断循环。


Python for 循环语句

Python for 循环可以遍历任何序列的项目,如一个列表或者一个字符串。
for 循环的语法格式如下:

for iterating_var in sequence:
    statements(s)

流程图:


image.png

实例:

# -*- coding: UTF-8 -*-
for letter in 'Python':  # 第一个实例
    print '当前字母 :', letter

fruits = ['banana', 'apple', 'mango']
for fruit in fruits:  # 第二个实例
    print '当前水果 :', fruit

print "Good bye!"

以上实例输出结果:

当前字母 : P
当前字母 : y
当前字母 : t
当前字母 : h
当前字母 : o
当前字母 : n
当前水果 : banana
当前水果 : apple
当前水果 : mango
Good bye!

通过序列索引迭代

另外一种执行循环的遍历方式是通过索引,如下实例:

# -*- coding: UTF-8 -*-
fruits = ['banana', 'apple', 'mango']
for index in range(len(fruits)):
    print '当前水果 :', fruits[index]

print "Good bye!"

以上实例我们使用了内置函数 len() 和 range(),函数 len() 返回列表的长度,即元素的个数。 range() 函数可创建一个整数列表,一般用在 for 循环中。

以上实例输出结果:

当前水果 : banana
当前水果 : apple
当前水果 : mango
Good bye!

循环使用 else 语句

在 python 中,for … else 表示这样的意思:for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,while … else 也是一样。

实例:

for num in range(10, 20):  # 迭代 10 到 20 之间的数字
    for i in range(2, num):  # 根据因子迭代
        if num % i == 0:  # 确定第一个因子
            j = num / i  # 计算第二个因子
            print '%d 等于 %d * %d' % (num, i, j)
            break  # 跳出当前循环
    else:  # 循环的 else 部分
        print num, '是一个质数'

以上实例输出结果:

10 等于 2 * 5
11 是一个质数
12 等于 2 * 6
13 是一个质数
14 等于 2 * 7
15 等于 3 * 5
16 等于 2 * 8
17 是一个质数
18 等于 2 * 9
19 是一个质数

Python 循环嵌套

Python 语言允许在一个循环体里面嵌入另一个循环。
Python for 循环嵌套语法:

for iterating_var in sequence:
    for iterating_var in sequence:
        statements(s)
    statements(s)

Python while 循环嵌套语法:

while expression:
    while expression:
        statement(s)
    statement(s)

你可以在循环体内嵌入其他的循环体,如在 while循环 中可以嵌入 for循环, 反之,你可以在 for循环 中嵌入 while循环。

实例:
以下实例使用了嵌套循环输出 2~100 之间的素数:

# -*- coding: UTF-8 -*-
i = 2
while i < 100:
    j = 2
    while j <= (i / j):
        if not (i % j): break
        j = j + 1
    if j > i / j: print i, " 是素数"
    i = i + 1

print "Good bye!"

以上实例输出结果:

2  是素数
3  是素数
5  是素数
7  是素数
11  是素数
13  是素数
17  是素数
19  是素数
23  是素数
29  是素数
31  是素数
37  是素数
41  是素数
43  是素数
47  是素数
53  是素数
59  是素数
61  是素数
67  是素数
71  是素数
73  是素数
79  是素数
83  是素数
89  是素数
97  是素数
Good bye!

Python break 语句

Python break 语句,就像在 C语言 中,打破了最小封闭 for 或 while 循环。

break 语句用来终止循环语句,即循环条件没有 False 条件或者序列还没被完全递归完,也会停止执行循环语句。

break 语句用在 while 和 for 循环中。

如果您使用嵌套循环,break 语句将停止执行最深层的循环,并开始执行下一行代码。

Python 语言 break 语句语法:

break

流程图:


image.png

实例:

# -*- coding: UTF-8 -*-
for letter in 'Python':  # 第一个实例
    if letter == 'h':
        break
    print '当前字母 :', letter

var = 10  # 第二个实例
while var > 0:
    print '当前变量值 :', var
    var = var - 1
    if var == 5:  # 当变量 var 等于 5 时退出循环
        break

print "Good bye!"

以上实例执行结果:

当前字母 : P
当前字母 : y
当前字母 : t
当前变量值 : 10
当前变量值 : 9
当前变量值 : 8
当前变量值 : 7
当前变量值 : 6
Good bye!

Python continue 语句

Python continue 语句跳出本次循环,而break跳出整个循环。

continue 语句用来告诉 Python 跳过当前循环的剩余语句,然后继续进行下一轮循环。

continue 语句用在 while 和 for 循环中。

Python 语言 continue 语句语法格式如下:

continue

流程图:


image.png

实例:

for letter in 'Python':  # 第一个实例
    if letter == 'h':
        continue
    print '当前字母 :', letter

var = 10  # 第二个实例
while var > 0:
    var = var - 1
    if var == 5:
        continue
    print '当前变量值 :', var

print "Good bye!"

以上实例执行结果:

当前字母 : P
当前字母 : y
当前字母 : t
当前字母 : o
当前字母 : n
当前变量值 : 9
当前变量值 : 8
当前变量值 : 7
当前变量值 : 6
当前变量值 : 4
当前变量值 : 3
当前变量值 : 2
当前变量值 : 1
当前变量值 : 0
Good bye!

Python pass 语句

Python pass 是空语句,是为了保持程序结构的完整性。

pass 不做任何事情,一般用做占位语句。

Python 语言 pass 语句语法格式如下:

pass

实例:

# -*- coding: UTF-8 -*-
# 输出 Python 的每个字母
for letter in 'Python':
    if letter == 'h':
        pass
        print '这是 pass 块'
    else:
        print '当前字母 :', letter

print "Good bye!"

以上实例执行结果:

当前字母 : P
当前字母 : y
当前字母 : t
这是 pass 块
当前字母 : o
当前字母 : n
Good bye!

pass 一般用于占位置。
在 Python 中有时候会看到一个 def 函数:

def sample(n_samples):
    pass

该处的 pass 便是占据一个位置,因为如果定义一个空函数程序会报错,当你没有想好函数的内容是可以用 pass 填充,使程序可以正常运行。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容

  • Python 循环语句 程序在一般情况下是按顺序执行的。编程语言提供了各种控制结构,允许更复杂的执行路径。循环语句...
    kina_chen阅读 1,051评论 0 7
  • 条件与循环语句 条件与循环语句的表达式 在选择结构和循环结构中,都要根据条件表达式的值来确定下一步的执行流程,条件...
    backup备份阅读 2,315评论 0 0
  • shuimian(睡眠) shimian(失眠)
    97ada0251d0b阅读 291评论 0 0
  • 行者:那么人的存在跟生命是有意识体,那么意识体经过这一世,提升了意识体的层面了,意识体有层级吗? 丁师:应该有。因...
    文君45313阅读 440评论 0 0
  • 企业名称:海口美兰美购城实业有限公司 【时间】始于2018/5/1持续于2019/4/30 日精进打卡第291天 ...
    杨慧裕阅读 112评论 0 0