python系列-循环控制语句

在讲循环之前先介绍一下可迭代对象(列表、元组、字典、集合或者range()),其中迭代可理解为重复执行,我们的循环语句就是重复执行语句;也就是对可迭代对象的元素重复执行,直到所有的元素都执行一遍。

python里面进行循环控制的语句有for和 while,下面我们分别进行讲解。

1.for循环

1.1基本语法

  for var in 可迭代对象:

      程序代码块      #注意代码缩进

for循环一般是对可迭代对象进行遍历,然后对遍历的对象进行操作。

例如 我们一组有5人,想打印出来这5给人姓名,我们需要对人员进行遍历输出

my_list =['zhangsan', 'lisi', 'wangwu', 'yangliu','zhaoqi']

for person in my_list:

    print(person)

输出结果:

zhangsan

lisi

wangwu

yangliu

zhaoqi

1.2强制退出for循环语句break

  我们设计for循环时,如果满足某个条件时,循环终止,可以使用break指令,终止循环。

语法:

for 变量 in 可迭代对象:

    代码块1

    if 条件表达式:

      代码块2:

      beak  # if条件满足之后 终止循序

代码块3    #for循环之外的代码块

举给例子,假如有个数据列表,我们要查一下是否有90这个数据,如果找到就结束查找。

data_list = [66, 79, 88, 90, 78,76,91]

for num in data_list:

    print(num)

    if num == 90:  #如果找到90,结束循环,78,76和91这三个数据就不会打印

        break

程序输出:

66

79

88

90

1.3暂停本次循环往下执行continue指令

使用for循环时,如果期待的某个条件发生时可以不往下继续执行循环内容,转而进行下一次循环,continue指令不会终止循环。语法格式:

for 变量 in 可迭代对象:

  代码块1

  if 条件表达式:

代码块2

continue  #如果if条件表达式成立,执行continue 后 代码块3就不会执行

  代码块3

举例来说,有个数据列表,我们统计一下奇数的个数

num_list = [11, 22, 33, 35, 24,12]

for num in num_list:

    if num % 2 == 0:

        continue      #如果是偶数就不进行 下面的打印

    print(str(num)+'是奇数')

程序输出:

11是奇数

33是奇数

35是奇数

1.4嵌套for循环

就是for循环内还有一个for循环,成为循环嵌套。如果外层循环有m个数据,内层循环有n个数据,则整个循环执行的次数是m*n次。

不妨看下9*9乘法表打印

for i in range(1, 10):

    for j in range(1, i+1):

        result = i*j

        print("%d*%d=%-3d" %(i, j, result),end=" ") # %-3d每个输出预留3给空格,end="" 输出完空一格,不换行

  print() # 换行

程序输出:

1*1=1 

2*1=2  2*2=4 

3*1=3  3*2=6  3*3=9 

4*1=4  4*2=8  4*3=12  4*4=16 

5*1=5  5*2=10  5*3=15  5*4=20  5*5=25 

6*1=6  6*2=12  6*3=18  6*4=24  6*5=30  6*6=36 

7*1=7  7*2=14  7*3=21  7*4=28  7*5=35  7*6=42  7*7=49 

8*1=8  8*2=16  8*3=24  8*4=32  8*5=40  8*6=48  8*7=56  8*8=64 

9*1=9  9*2=18  9*3=27  9*4=36  9*5=45  9*6=54  9*7=63  9*8=72  9*9=81 

2.while循环

  while循环是当满足条件时会一直执行,直到条件为False时才停止,注意while循环一定要设置结束条件,否则会无限循环下去。

2.1语法

while 条件运算:

程序代码

我们使用for循环中的输出组内人名称的例子用while循环遍历,大家也可以比较下两个循环哪个更简洁些。

my_list =['zhangsan', 'lisi', 'wangwu', 'yangliu','zhaoqi']

num = 0

while num <= len(my_list): #当num大于my_list的长度时结束循环

    print(my_list[num])

    num += 1

程序输出:

zhangsan

lisi

wangwu

yangliu

zhaoqi

2.2break强制退出

基本语法:

while 条件运算:

程序代码1

if 条件运算:

  程序代码2

    break    # if条件成立,执行break指令 程序代码3 就不会执行

程序代码3 

  同for循环中一样,循环中当期待的某个条件满足时,可以使用break指令强制终止循环。同样我们使用上面的例子,假如有个数据列表,我们要查一下是否有90这个数据,如果找到就结束查找。

data_list = [66, 79, 88, 90, 78,76,91]

index = 0

while index <= len(data_list):

    if data_list[index] == 90:

        print('找到90了,退出!')

        break  #t退出后 78,76,91数据不会输出

    print('目前查到的数据是 %d' %(data_list[index]))

    index += 1

程序输出:

目前查到的数据是 66

目前查到的数据是 79

目前查到的数据是 88

找到90了,退出!

2.3continue指令暂停本次循环向下执行

使用for循环时,如果期待的某个条件发生时可以不往下继续执行循环内容,转而进行下一次循环,continue指令不会终止循环。语法格式:

while 条件运算:

  代码块1

  if 条件运算符:

      代码块2

      continue  # if条件成立,执行完 continue 后,代码块3 就不执行

  代码块3

我们继续使用上面的例子输出奇数

num_list = [11, 22, 33, 35, 24,12]

len_num = 0

while len_num <= len(num_list):

    if num_list[len_num] % 2 == 0:

        len_num += 1  #如果是偶数 ,下面的输出和len_num +=1就不会执行,len_num值不会发生改变,会死循环

        continue

    print('%d 是奇数' %(num_list[len_num]))

    len_num += 1

程序输出:

11 是奇数

33 是奇数

35 是奇数

2.4嵌套while循环

while的循环嵌套,就是while循环里面嵌套一个循环,语法:

while 条件运算:

    代码块1 # 可以没有

    while 条件运算:

          代码块2

    代码块3

举例依然是上面的例子,这次打印9*9乘法表:

i = 1

while i <= 9: # 当i大于9时跳出外层循环

    j = 1

    while j <= i:  # 当j大于 i时跳出内层循环

        result = i*j

        print("%d*%d=%-3d" % (i, j, result), end=" ")

        j += 1    # 内层循环加1

    print()

    i += 1  # 外层循环加1

程序输出:

1*1=1 

2*1=2  2*2=4 

3*1=3  3*2=6  3*3=9 

4*1=4  4*2=8  4*3=12  4*4=16 

5*1=5  5*2=10  5*3=15  5*4=20  5*5=25 

6*1=6  6*2=12  6*3=18  6*4=24  6*5=30  6*6=36 

7*1=7  7*2=14  7*3=21  7*4=28  7*5=35  7*6=42  7*7=49 

8*1=8  8*2=16  8*3=24  8*4=32  8*5=40  8*6=48  8*7=56  8*8=64 

9*1=9  9*2=18  9*3=27  9*4=36  9*5=45  9*6=54  9*7=63  9*8=72  9*9=81 

好了本次循环控制语句就写完了,本文中已说了 break和continue指令,结束之际再说一个指令 pass,pass指令本身什么也不做,就是为了保持程序结构的完整性。

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

推荐阅读更多精彩内容