第三节 循环结构

news2024/12/26 14:50:17

文章目录

  • 1. while循环
    • 1.1 什么是循环?
    • 1.2 while 循环
      • 1.2.1 语法结构
      • 1.2.2 循环中的异类
    • 1.3 while循环使用案例
      • 1.3.1 求1~100之间的和
      • 1.3.2 求1~100之间偶数之和
      • 1.3.3 循环中的"标志变量"
    • 1.4 嵌套循环使用
      • 1.4.1 嵌套循环语法结构
      • 1.4.2 嵌套练习
    • 1.5 知识扩展 --最大公约数
  • 2. for 循环
    • 2.1 语法结构
    • 2.2 练习: 获取1~5的整数
      • 2.2.1 range() 函数
    • 2.3 for 循环的嵌套使用
      • 2.3.1 打印直角三角型
      • 2.3.2 打印九九乘法表
    • 2.4 break 和 continue
      • 2.4.1 break
      • 2.4.2 continue
    • 2.5 扩展知识 while - else 结构

1. while循环

1.1 什么是循环?

  1. 主要强调一个周而复始的概念,即满足条件重复执行。 但是有3个注意条件:

    • 循环开始
    • 判断条件
    • 控制判断条件的控制,即,步长
  2. 根据上面的提示,我们可以去联想一些生活中的案例,分析一下,有什么相同的地方 ?。

    • 操场跑圈
    • 打印机打印文件
    • 切黄瓜
    • 爱你一万年
  3. 通过print("跑了第i 圈") 输出的形式,模拟操场跑圈。

    • 第一种情况: 跑5圈。
    • 第二种情况: 跑1万圈。
    #第一种情况,跑5圈
    print("跑了第1圈") 
    print("跑了第2圈") 
    print("跑了第3圈") 
    print("跑了第4圈") 
    print("跑了第5圈")
    
    # 那么跑 1万圈 怎么实现? 复制+黏贴?
    
    
    

1.2 while 循环

1.2.1 语法结构

  1. 循环三要素:

    • 起始化值,
    • 判断条件,
    • 步长(控制循环)。
  2. while 循环的语法格式:

    • 注意 步长控制的格式缩进.,
    1.初始化值
    while 2.判断条件:
    	执行语句(需要循环地方)
    	3.控制循环(步长)
    
  3. 结合语法结构, 完成跑操场跑一万圈.

    • 第一个注意: 格式上的缩进.
    • 第二个注意: 字符串输出的格式化 f " {} "
    #第二种情况使用while语法格式跑1万圈
    #1. 初始化值
    i=1
    while i<=10000 :#2.判断条件
        # 需要循环的语句
        print(f"跑了第{i}圈")
        #3.步长控制循环
        i+=1
    

1.2.2 循环中的异类

  1. 无限循环又叫做 “死循环”,就是不会停止

    • 请思考, 什么情况下会出现死循环?
    # 1. 什么是无限循环 ?
    while True: # 判断条件永远会执行.
        print("永远和你在一起")
    
    
  2. 自己动手,通过 Debug 来查看循环的执行过程? 并给出你的结论.

    • 注意观看 Debug控制台.
      blog.csdnimg.cn/77cd19536ee64158889bb5dd4e1cdf3f.png)

1.3 while循环使用案例

1.3.1 求1~100之间的和

  1. 相当于从1累加到100.
    • 提示: 起始值从 1开始.
    """
    1. 第一种计算 1到100和
        1.1 相当于 1+2+3...+100.
        1.2 循环三要素:
             初始化值
             判断条件
             步长(控制循环)
    """
    #1. 初始值
    i = 1
    #3. 累计每一次的和
    sum =0
    #2.1-100之间的和 判断条件 i<=100
    while i<=100:
        sum=sum+i #相当于每次循环累计一次.
        i+=1  # 步长控制循环
    
    #循环结束输出 sum值
    print(sum) #5050
    

1.3.2 求1~100之间偶数之和

  1. 什么是偶数?

    • 需要使用运算符 % 去解决.
    • 使用Debug 查看.
    # i%2==0 就是偶数
    i = 1
    oushu = 0
    while i <= 100:
        # 进行判断偶数
        if i % 2 == 0:
            oushu = oushu + i
        i += 1  # 步长
    print(f"偶数之和{oushu}") #2550
    
    
  2. 第二种方式,通过改变控制条件, 来得到偶数.

    • 需要注意初始化值. 思考?从0开始和从2开始的区别?
    • 如果是使用步长控制值的变化,那么还需要使用选择结构去进行判断么?
    # 第二种写法
    
    i = 0 #既然是偶数相加可以从0开始,或者从2开始.
    oushu = 0
    while i <= 100:
        #就不用判断了.
        oushu = oushu + i
        # 通过步长来控制循环,相当于2
        i = i + 2
    print(f"偶数之和是{oushu}")#2550
    
  3. 自己动手做: 请算出 1~100奇数之和.

    • 思考一下, 这两种写法有什么区别? 用自己的语言描述一下.
    #提示: 什么是奇数? 
    #通过步长控制? 
    #TODO coding
    
    

1.3.3 循环中的"标志变量"

  1. 妈妈每次都要问小明,“你作业做完了么?”,小明只有作业做完了才能出去玩, 没有做完就继续做,直到做完作业才可以.

    • 循环中标志变量的使用.
    '''
    1. 标志变量一般在循环中相当于一个开关,
        碰到了该变量就会停止,
    '''
    # 声明一个标志变量
    answer = "no"
    while answer == "no":
        print("作业中.....")
        answer = input("妈妈问: 小明作业做完了么?")#相当于步长.
        print(f"小明的回答是{answer}")
    print("程序结束")
    

1.4 嵌套循环使用

1.4.1 嵌套循环语法结构

  1. 嵌套顶级,核心语法

    • 联想钟表:分针走一次, 秒针需要走一圈.
    • 即: 外循环循环一次, 内循环循环一圈.
  2. 嵌套循环的语法结构

    • 外层循环执行一次, 内层循环执行多次.
    while 判断条件:  #外循环
    	代码 1
    	
    	while 判断条件: #内循环
    		代码2:
    		步长控制2
    	步长控制1
    

1.4.2 嵌套练习

  1. 要求输出一下格式,循环嵌套的目标结果.

    • 操场跑圈,一共要跑5圈, 每跑一圈,需要做3个俯卧撑.
    '''
    第1圈
        做了第1个俯卧撑
        做了第2个俯卧撑
        做了第3个俯卧撑
    第2圈
        做了第1个俯卧撑
        做了第2个俯卧撑
        做了第3个俯卧撑
    第3圈
        ...
    '''
    
  2. 根据上述需求,可以得知,一共跑5圈,每次3个俯卧撑

    • 提示 : 可以先创建外层循环, 内层循环使用print()输出5次.然后再将内层循环带入.
    • 注意: 格式上的缩进, 步长控制.
    • 使用断点测试代码.
    i = 1
    while i <= 5:
        print(f"跑了第{i}圈")
    	#准备做俯卧撑  
    	#print("做俯卧撑")
        # 内层循环,直接带入.
        j = 1
        while j <= 3:
            print(f"\t做第{j}个俯卧撑") #使用制表符
            j += 1 #注意格式缩进  
        # 外层循环控制
        i += 1
    

1.5 知识扩展 --最大公约数

  1. 一个数可以整除几个数,那么这几个数称为公约数.

    • 1是最小公约数
      在这里插入图片描述
    """
    输入两个数  12   8 
    从开始      1    1  公约数
                2   2   公约数
                3   3
                4    4   公约数(最大)
                5    5 
                6    6 
                ..   ..
    """
    

2. for 循环

2.1 语法结构

  1. for循环也是循环,也是表示重复做某些事,只是语法格式同while循环不一样.

    • 但是原理是一样的.
  2. 语法格式

    for 输出变量名 in 要遍历的内容:
    	 循环体
    
  3. 入门案例 变量字符串.

    • 遍历字符串 “hello,world”
    #遍历该字符串
    for i in "hello,world":
        print(i)
    

2.2 练习: 获取1~5的整数

  1. 获取1~5的整数

    #1.直接输入整数是不行的.需要一个范围,且是字符串形式
    # for i in 12345:
    #     print(i) # TypeError: 'int' object is not iterable
    
    print("-"*20) #华丽的分隔符
    
    #2.需要使用字符串的形式
    for i in "12345":
        print(i)
    

2.2.1 range() 函数

  1. range() 函数可创建一个整数列表, 一般用在 for 循环中使用.

  2. range() 使用的三种情况.

    • 自己总结一下规律.
    • 反向遍历,从大到小
    # 1. range(8)      [0,8)
    for i in range(8):
    	print(i) #根据输出结果自己总结
    
    # 2. range(1,8)     [1,8)
    for i in range(1,8):
        print(i)
    
    # 3. range(0,8,2)    [0,8,2) 计数间隔2
    for i in range(0,8,2):
        print(i)
    
    # 4.扩展知识 range(8,0,-2)  
    for i in range(8,0,-2): 
    	print(i) # 相当于从反方向输出,即反向遍历
    
  3. 使用 for循环计算 1~100之间的和.

    • 思考如果求:1~100的偶数之和呢?
    
    #设置累计求和 sum
    sum = 0
    # for循环语法   range(1,101)
    for i in range(1,101):#需要加到100,[1,101)
        sum = sum+i #累计求和
    
    print(f"1~100的值是{sum}")
    

2.3 for 循环的嵌套使用

2.3.1 打印直角三角型

  1. 打印直角三角型

    • 使用for循环的嵌套,
    • 外循环控制行, 内循环控制输出次数
  2. 图形如下

        *
        * *
        * * *
        * * * *
        * * * * *
    
  3. 代码:

    • 举一个例子: 最快速的方式 ? 直接print输出,推荐使用 三引号.
    • 使用带入方法,去编写代码.
    """
    第二种方式:采用for循环的方式 
        分析一波:
            for 外层控制输出行数
                for 内循环控制输出次数 
            
            第一次循环: 
                    for 外层循环第1次循环
                         for(内层) 输出1次 *
            第二次循环:
                    for 外层循环第2次循环
                        for(内层) 输出2次  * * 
            第三次循环:
                    for 外层循环第3次循环
                        for(内层) 输出3次  * * *
            第四次循环: 
                    for 外层循环第4次循环 
                        for(内层) 输出4次  * * * * 
            第五次循环
                    for 外层循环第5次循环 
                        for(内层) 输出5次  * * * * * 
    """
    
    for i in range(1,6): # [1,6) 相当于 1,2,3,4,5 次.
            #内层循环控制输出次数
        for j in range(i):
            # 默认输出是"\n",需要该为end=""小细节
            print("*",end=" ") 
        #相当于换行
        print("")
    
  4. 要求输入一个n打印出来相应的行数.即输入几就打印几行.

    • 要了解 range(start,end,step) 的函数.
    #.怎么分析代码?
    #当n =1 时 
    n=1
    for i in range(n):
        for j in range(i):
            print("*", end=" ")
        print("")
    
    #当n=2时...
    n=2
    for i in range(n):
       for j in range(i):
            print("*", end=" ")
        print("")
    # 当n=3时 ...
    n=3
    for i in range(n):
        for j in range(i):
            print("*", end=" ")
        print("")
    
    # 最终: 所以得出结论,输入n+1 就是要打印的行数. 
    n =4
    for i in range(1,n+1):
        for j in range(i):
            print("*", end=" ")
        print("")
    

2.3.2 打印九九乘法表

  1. 使用循环来打印九九乘法表
    2.

    """
    如何分析:
        根据样式发现
            外循环第一次循环
                内循环一次
            外循环 第二次
                内循环输出二次
            外循环  循环9次
                内循环输出9次
    
    """
    # 根据语法格式 先搭建外循环构架
    for i in range(1, 10):
        for j in range(1, i + 1):  # 需要使用i+1 输出第一个
            print(f"{j}x{i}={i * j}", end=" ")
        print("")
     
    print("*"*20)
    
    
  • 思考: 第二种需求,当输入n时 生成 相应的乘法表.

    #2,第二种需求,当输入n时 生成 相应的乘法表.
    n = 11;
    for i in range(1, n+1):
        for j in range(1, i + 1):  # 需要使用i+1 输出第一个
            print(f"{j}x{i}={i * j}", end=" ")
        print("")
    

2.4 break 和 continue

2.4.1 break

  1. break 语句用于结束整个循环.

    • 演示break的循环过程
    • 只能使用在循环之中.
    #1.break使用结构,跳出本次循环,并结束程序.
    i=1
    while i<=10:
        print(i) #1 ,2,3 
        if i==3:
            break
        print(f"我执行了么?{i}") #后面的语句就不执行了. 1 ,2
        i+=1
    
    1
    我执行了么?1
    2
    我执行了么?2
    3
    
  2. 使用Debug查看.
    在这里插入图片描述

2.4.2 continue

  1. continue的作用是结束本次循环.执行下一次循环

    • 演示continue 的循环过程.
    • 只能使用在循环之中.
    # 结束本次循环,执行下一次循环
    
    for i in range(1, 10):
        print(i) 
        if i == 3:
            continue
        print(f"我执行了么{i}") #相当于跳过了3,执行了后面.
    

2.5 扩展知识 while - else 结构

  1. 知道有if -else 结构, else 还可以和while一起使用.

    • else执行也是有条件的.
    • pass 占位符语句,又叫空语句.
    # 1. 这叫做等式恒成立结构. 所以 else会是黄色的.
    if 5 > 3:
        print("if")
    else:
        print("else")
    
    # 2. pass 占位语句
    if 5 > 3:
        # 如果不写会报错.
        pass  # 使用pass占位,不执行任何,空语句
    else:
        print("else")
    
    # 3. while-else结构
    # 如果循环正常结束,循环输出就会执行 else里面
    i = 1
    while i <= 10:
        print(i)
        i = i + 1
    else:
        print("else")
    
    #3.1  如果循环中有break就不会执行.
    i = 1
    while i <= 10:
        print(i)
        if i==3:
            break
        i = i + 1
    else:
        print("else")
    
    

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/617661.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Mobx+Mobx-React快速上手 简单可扩展的状态管理解决方案

Mobx是Redux之后的一个状态管理库&#xff0c;基于响应式状态管理&#xff0c;整体是一个观察者模式的架构&#xff0c;存储state的store是被观察者&#xff0c;使用store的组件是观察者。Mobx可以有多个store对象&#xff0c;store使用的state也是可以变对象&#xff0c;这些都…

LNMP架构搭建实操(终有弱水替沧海,再无相思寄巫山”大概意思就是,你会遇到很多人,但不会有人像我那么爱你了。)

文章目录 一、安装Nginx服务1.安装依赖包2.创建Nginx运行用户3.编译安装Nginx源码包4.优化路径便于使用5、添加 Nginx 系统服务 二、安装Mysql服务1.安装Mysql环境依赖包2.创建Mysql运行用户3.编译安装4.修改mysql配置文件5.更改mysql安装目录和配置文件的属主属组6.设置路径环…

【Leetcode】77 组合 | 掌握回溯的力量吧!

【1】限制&#xff1a;数字只能够使用一次。 77 组合 栗子&#xff0c;从 { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 } \{1,2,3,4,5,6,7,8,9,10\} {1,2,3,4,5,6,7,8,9,10}中选择4个数&#xff1a; 选择1&#xff0c;从 { 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 } \{2,3,4,5,6…

电力需求侧管理和电力负荷管理数字化解决方案 安科瑞 许敏

摘要&#xff1a;近年来全国用电负荷特别是居民用电负荷的快速增长&#xff0c;全国范围内夏季、冬季用电负荷“双峰”特征日益突出&#xff0c;恶劣气候现象多发增加了电力安全供应的压力。具有随机性、波动性、间歇性特征的可再生能源大规模接入电网对电力系统的稳定性带来新…

视频观看行为高级分析(大数据分析)

今天介绍一下我们的视频观看行为高级分析功能。 一、观看行为分析 观看行为分析&#xff0c;基于Polyv大数据分析&#xff0c;能够以秒为粒度展示观众如何观看您的视频。 视频观看热力图是单次观看行为的图形化表示&#xff0c;Polyv云点播视频的每一次播放&#xff0c;都会产…

基于jupyter的多分类问题练习

文章目录 练习3&#xff1a;多分类问题介绍1 多分类1.1 数据集1.2 数据可视化1.3 逻辑回归的向量化1.3.1 代价函数的向量化1.3.2 梯度的向量化1.3.3 正则化逻辑回归的向量化 1.4 多分类-分类器 1.5 使用分类器进行预测 总结 练习3&#xff1a;多分类问题 介绍 在本练习中&…

Leetcode周赛348

第一题&#xff1a;最小化字符串长度 思路分析 通过分析我们可以发现&#xff0c;只要存在重复的元素就可以继续进行操作所以这里本质上是一道去重的题目去重我们可以使用双指针算法和Set&#xff1b;我们选择使用Set进行去重 class Solution {public int minimizedStringLengt…

Vue2 vue-cli

安装与卸载vue脚手架 npm i -g vue/cli vue --version 查看vue脚手架版本 vue -V 查看vue脚手架版本 npm uninstall -g vue/cli 卸载 创建项目 vue create 项目名 选择项目 &#xff08;Default 为快速创建项目&#xff09; 选择最后一下&#xff0c;回车 上下键选择 Rou…

shell脚本:函数

shell脚本-函数 一、函数&#xff1a;1.定义&#xff1a;2.作用&#xff1a;3.格式&#xff1a; 二、函数传参&#xff1a;1.定义&#xff1a;2.函数变量&#xff1a;3.递归&#xff1a;4.函数库&#xff1a; 一、函数&#xff1a; 1.定义&#xff1a; &#xff08;1&#xf…

Internal error. Please report to https://jb.gg/ide/critical-startup-errors

大佬的解决方式&#xff1a;PyCharm 2023 启动报错的处理 部分同学&#xff0c;发现在安装 PyCharm 2023.1.2 以及 PyCharm 2023.2 的抢先体验版之后&#xff0c;运行的时候愣是直接弹出了类似上面的报错。 反正&#xff0c;别慌&#xff01; 是的&#xff0c;他们有 bug。 …

呈现视觉妙技:使用Python将MP4视频转化为迷人的GIF图像

前言 GIF图片对于我来说是一个很好的展示方式&#xff0c;GIF 图片能够展示动态的图像效果&#xff0c;对于展示计算机视觉算法或结果非常有用。例如&#xff0c;我可以使用 GIF 图片来展示运动跟踪、姿势识别、图像分割、目标检测等任务的结果&#xff0c;以更生动和直观的方…

基于midiepipe、opencv的家庭健身智能推荐与姿态监测系统

目录 0. 前言1. opencv简介2. midiepipe简介3. yolo5简介4. 虚拟环境搭建以及工程目录设置5. 部分代码展示6. 项目成果7. 说明 0. 前言 本项目由我与gay友以及三位21级学弟历时一年共同合作完成 为了给运动者提供一种更加科学、更加精准的个性化运动方案&#xff0c;设计实现…

【SpinalHDL快速入门】6.2、SpinalHDL语法之When/Switch/Mux

文章目录 1.1、When1.2、Switch1.2.1、实例1.2.2、附加选项 1.3、本地声明1.4、Mux1.5、位选择1.5.1、实例 1.1、When 与VHDL和Verilog一样&#xff0c;当满足指定条件时可以对信号进行有条件的赋值&#xff1a; when(cond1) {// Execute when cond1 is true }.elsewhen(cond…

直播问答功能(互动功能接收端JS-SDK)

功能概述 本模块主要用于展示问答模块。 初始化及销毁 在实例化该模块并进行使用之前&#xff0c;需要对SDK进行初始化配置&#xff0c;详细见参考文档。 在线文件引入方式 // script 标签引入&#xff0c;根据版本号引入JS版本。 <script src"https://websdk.vi…

【Maven】Maven入门,Java界的Anaconda!

1 Maven介绍 官方文档&#xff1a;Apache Maven 的本质是一个软件项目管理和理解工具。基于项目对象模型 (Project Object Model&#xff0c;POM) 的概念&#xff0c;Maven 可以从一条中心信息管理项目的构建、报告和文档。 就像Python和Anaconda的关系&#x1f92d; 可以帮助…

java设计模式(十三)解释器模式

目录 定义模式结构角色职责代码实现场景适用优缺点 定义 解释器模式&#xff08;Interpreter Pattern&#xff09; 提供了评估语言的语法或表达式的方式&#xff0c;它属于行为型模式。这种模式实现了一个表达式接口&#xff0c;该接口解释一个特定的上下文。这种模式被用在 S…

Linux 内存管理6——slab内存池的创建初始化过程

在上篇文章 中&#xff0c;笔者带大家从一个最简单的物理内存页开始&#xff0c;一步一步演进 slab cache 的架构&#xff0c;最终得到了一副 slab cache 完整的架构图&#xff1a; 在本文的内容中&#xff0c;笔者会带大家到内核源码实现中&#xff0c;来看一下 slab cache 在…

第三章:基本的SELECT语句

第三章&#xff1a;基本的SELECT语句 3.1&#xff1a;SQL概述 SQL背景知识 1946年&#xff0c;世界上第一台电脑诞生&#xff0c;如今&#xff0c;借由这台电脑发展起来的互联网已经自成江湖。在这几十年里&#xff0c;无数的技术、产业在这片江湖里沉浮&#xff0c;有的方兴未…

HTTP和HTTPS

目录 HTTP 告知服务器意图的HTTP方法 状态码告知从服务器端返回的请求结果 2XX 成功 3XX 重定向 4XX客户端错误 5XX服务器错误 使用Cookie的状态管理 HTTP 的缺点 HTTPS HTTP 当我们在网页浏览器的地址栏输入URL时&#xff0c;Web页面是如何呈现的吗&#xff1f; …

Linux 面试题-(腾讯,百度,美团,滴滴)

Linux 面试题-(腾讯,百度,美团,滴滴) 分析日志t.log(访问量)&#xff0c;将各个ip 地址截取&#xff0c;并统计出现次数,并按从大到小排序(腾讯) http://192.168.200.10/index1.html http://192.168.200.10/index2.html http://192.168.200.20/index1.html http://192.168.20…