• python学习第五天之循环结构


    目录

    1.range()函数的使用

    2.循环结构

    1.while循环

    2.for-in循环

    3.break,continue与else语句

    4.嵌套循环


    1.range()函数的使用

    • 用于生成一个整数序列

    • 创建range对象的三种方式

     

    • 返回值是一个迭代器对象

    • range类型的优点:不管range对象表示的整数序列有多少,所有range对象占用的内存空间都是相同,因为仅仅需要储存start,stop和step,只有当用到range对象时,才会去计算序列中的相关元素

    • in与not in判断整数序列中是否存在(不存在)指定的整数

    ​
    ​
    
    
    1. #range()的三种创建方式
    2. '''第一种创建方式,只有一个参数(小括号中只给了一个数)'''
    3. r = range(10)   #[0,1,2,3,4,5,6,7,8,9],默认从0开始,默认相差1称为步长
    4. print(r)   #range(0,10)
    5. print(list(r)) #用于查看range对象中的整数序列 --》list是列表的意思
    6. ​
    7. '''第二种创建方式,给了两个参数(小括号中给了两个数)'''
    8. r = range(1,10)     #指定了起始值,从1开始,到10结束(不包含10),步长为1
    9. print(list(r))     #[1,2,3,4,5,6,7,8,9]
    10. ​
    11. '''第三种创建方式,给了三个参数(小括号给了三个数)'''
    12. r = range(1,10,2)
    13. print(list(r)) #[1,3,5,7,9]
    14. ​
    15. '''判断指定的整数 在序列中是否存在in,not in'''
    16. print(10 in r) #False,10不在当前的r这个整数序列中
    17. print(9 in r)   #True,9在当前的r这个序列中
    18. ​
    19. print(10 not in r) #True
    20. print(9 not in r)   #False
    21. ​
    22. print(range(1,20,1))   #[1...19]
    23. print(range(1,101,1))   #[1....100]

    2.循环结构

    • 反复做同一件事情的情况,称为循环

    • 循环结构的流程图

     

    • 循环的分类

      • while

      • for

    • 语法结构

      while 条件表达式:

      条件执行体(循环体)

    • 选择结构的if与循环结构while的区别

      • if是判断一次,条件为True执行一次

      • while是判断N+1次,条件为True执行N次

      ​
      ​
      
      
      1. a = 1
      2. #判断条件表达式
      3. while a<10:
      4.   #执行条件执行体
      5.   print(a)
      6.   a+=1

    1.while循环

    • 四步循环法

      • 初始化变量

      • 条件判断

      • 条件执行体(循环体)

      • 改变变量

       

    • while循环的执行流程

    ​
    
    
    1. #计算0到4之间的累加和
    2. '''
    3. 4步循环法
    4. 1.初始化变量
    5. 2.条件判断
    6. 3.条件执行体(循环体)
    7. 4.改变变量
    8. 总结:初始化的变量与条件判断的变量与改变的变量为同一个
    9. '''
    10. ​
    11. sum =0 #用于存储累加和
    12. '''初始化变量为0'''
    13. a = 0
    14. '''条件判断'''
    15. while a<5:
    16.   '''条件执行体'''
    17.   sum += a
    18.   '''改变变量'''
    19.   a += 1
    20. print('和为',sum)
    ​
    ​

    练习:计算1-100的偶数和

    1. ​
    2. print(bool(0))
    3. '''计算1-100的偶数和'''
    4. '''初始化变量'''
    5. a = 1
    6. sum = 0
    7. '''条件判断'''
    8. while a<=100:
    9.   '''条件执行体(求和)'''
    10.   #条件判断是否为偶数
    11.   if not bool(a%2):#if a%2==0:
    12.       sum += a
    13.   '''改变变量'''
    14.   a+=1
    15. print('1-100之间的偶数和',sum)
    16. ​
    ​

    2.for-in循环

    • for-in循环

      • in表达从(字符串,序列等)中依次取值,又称遍历

      • for-in遍历的对象必须是可迭代对象

    • for-in的语法结构

      for 自定义的变量 in 可迭代对象:

      循环体

    • for-in的执行图

     

    • 循环体内不需要访问自定义变量,可以将自定义变量替代为下划线

    ​
    ​
    
    
    1. for item in 'Python': #第一次取出来的是p,将p赋值item,将item,将item的值输出
    2.   print(item)
    3. ​
    4. #range()产生一个整数序列,--》也是一个可迭代对象
    5. for i in range(10):
    6.   print(i)
    7. ​
    8. #如果在循环体中不需要使用到自定义变量,可将自定义变量写为“_”
    9. for _ in range(5):
    10.   print('人生苦短,我用python')
    11. ​
    12. #计算1-100的偶数和
    13. sum =0
    14. for item in range(1,101):
    15.   if item%2==0 :
    16.       sum+=item
    17. print('1-100之间的偶数和为:',sum)
    ​
    ​

    练习:输出100-999的水仙花数

    ​
    ​
    
    
    1. '''输出100-999之间的水仙花数
    2.   举例:
    3.   153=3*3*3+5*5*5+1*1*1
    4. '''
    5. ​
    6. for item in range(100,1000):
    7.   ge = item % 10     #各位
    8.   shi = item//10%10   #十位
    9.   bai = item//100     #百位
    10.   #print(bai,shi,ge)
    11.   #判断
    12.   if ge**3+shi**3+bai**3==item:
    13.       print(item)

    3.break,continue与else语句

    • 流程控制语句break

      • 用于结束循环结构,通常与分支结构if一起使用

       

      ​
      
      
      1. '''从键盘录入密码,最多录入3次,如果正确就结束循环'''
      2. for item in range(3):
      3.   pwd = input('请输入密码:')
      4.   if pwd =='888':
      5.       print('密码正确')
      6.       break
      7.   else:
      8.       print('密码不正确')
      9. ​
      1. ​
      2. a =0
      3. while a<3:
      4.   '''条件执行体(循环体)'''
      5.   pwd = input('请输入密码')
      6.   if pwd =='8888':
      7.       print('密码正确')
      8.       break
      9.   else:
      10.       print('密码不正确')
      11. ​
      12.   '''改变变量'''
      13.   a+=1
      ​

    • 流程控制语句continue

      • 用于结束当前循环,进入下一次循环,通常与分支结构中的if一起使用

       

      ​
      
      
      1. ​
      2. '''要求输出1-50之间所有5的倍数,5,10,15,20,25
      3.   5的倍数的共同点,和5的余数为0的数都是5的倍数
      4.   什么样的数不是5的倍数,1,2,3,4,6,7,8,9.。。与5的余数不是0的数不是5的倍数
      5.   要求是使用continue实现
      6. '''
      7. ​
      8. for item in range(1,51):
      9.   if item%5==0:
      10.       print(item)
      11. ​
      12. print('-------------使用continue--------')
      13. for item in range(1,51):
      14.   if item%5!=0:
      15.       continue
      16.   print(item)

    • else语句

      • 与else语句配合使用的三种情况

       

      ​
      ​
      
      
      1. for item in range(3):
      2.   pwd = input('请输入密码:')
      3.   if pwd == '8888':
      4.       print('密码错误')
      5.       break
      6.   else:
      7.       print('密码错误')
      8. else:
      9.   print('对不起,三次密码均输入错误')
      ​
      ​
      
      
      1. a = 0
      2. while a<3:
      3.   pwd = input('请输入密码')
      4.   if pwd == '8888':
      5.       print('密码正确')
      6.       break
      7.   else:
      8.       print('密码不正确')
      9.   '''改变变量'''
      10.   a+=1
      11. else:
      12.   print('对不起,三次密码均输入错误')
          
      ​
      ​
      ​

    4.嵌套循环

    • 循环结构中又嵌套了另外的完整的循环结构,其中内层循环做为外层循环的循环体执行

     

    ​
    ​
    
    
    1. for i in range(1,4):   #行表,执行三次,一次是一行
    2.   for j in range(1,5):
    3.       print('*', end='\t')
    4.   print() #打印
    1. ​
    2. #输出三角形
    3. for i in range(1,10):
    4.   for i in range(1,i+1):
    5.       print('*',end='')
    6.   print()
    ​
    
    1. #输出九九乘法表
    2. for i in range(1,10):
    3.   for j in range(1,i+1):
    4.       print(i,'*',j,'=',i*j,end='\t')
    5.   print()
    ​
    • 二重循环中的break和continue用于控制本层循环

     

    1. '''流程控制语句break与continue在二重循环中的使用'''
    2. for i in range(5): #代表外层循环要执行5次
    3. for j in range(1,11):
    4. if j%2==0:
    5. #break #直接跳到外部循环
    6. continue
    7. print(j,end='\t')
    8. print()

    总结:

  • 相关阅读:
    Redis - Redisson
    猿创征文|深度剖析复杂的菱形继承与菱形虚拟继承
    Android 源码解读-应用是如何启动的
    1个月时间整理了2019年上千道Java面试题,近500页文档!
    【操作系统】Lesson1-什么是操作系统
    班级管理小程序开发
    1.8.C++项目:仿muduo库实现并发服务器之eventloop模块的设计
    分布式链路追踪- SkyWalking使用手册
    零基础html学习/刷题-第一期
    【Java线程池】 java.util.concurrent.ThreadPoolExecutor 源码分析
  • 原文地址:https://blog.csdn.net/qq_52074678/article/details/125591609