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指令本身什么也不做,就是为了保持程序结构的完整性。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容