Python 03(循环语句)
Python03(循环语句)
文章目录
- Python03(循环语句)
- 一、while语句
- 二、while实现猜数字
- 三、while循环的嵌套
- while循环嵌套实例
- 需求:
- 四、for循环
- 1、什么 是for循环
- 2、语法
- 3、执行流程
- 4、for循环的基本使用
- 5、range()函数
- 6、range()函数的使用
- 7、for循环实例01
- 8、for循环遍历字符串
- 五、循环嵌套语法(总结)
- 1、while和for的相互嵌套
- 六、循环嵌套-实例
- 七、跳转语句
- 1、 break语句
- 2、brake的用法:
- 3、break简单的使用实例
- 八、continue语句
- 1、continue 语句的使用
- 2、拍腿游戏实例
- 九、pass空语句
python中的循环语句
一、while语句
语法:
"""while循环语句:语法格式为: while 条件:条件满足执行的代码块.......只要条件满足就会一直执行
"""# while循环的简单使用
i = 0
while i < 10:print("while语法")i += 1
- 条件的结果处理就是布尔类型
- 注意空格缩进
- 使用的时候一定要设定好条件,否则循环无法停止。
while循环的简单语法练习
# 语法练习 使用while循环求出1到100 之间的累加和
i = 1
sum = 0
while i <= 100:sum += ii += 1
print(f"1~100之间的累加和为;{int(sum)}")
二、while实现猜数字
需求:
- 1-100之间随机生成数字,无限次机会
- 每一次都会有提示大了、小了、或者猜中了
- 统计好使用的次数
# 导入随机数函数
import random
# 初始化随机数
num = random.randint(1,100)# 初始化变量
count = 0
# 使用变量阀门去控制循环
true = True
# 逻辑代码
while true:random_num = int(input("请输入您猜的数字:"))count += 1if random_num == num:print("恭喜你第%d次猜中了!" % count)true = Falseelse:if random_num <= num:print("猜小了")else:print("猜大了")
三、while循环的嵌套
嵌套:
- 外层可以理解为每一天都需要执行
- 内层循环可以理解为每一天中需要执行的内容。
- 外层一次,内层一周期
"""while循环嵌套
"""i = 1
while i <= 100:print("敲代码的第%d天" % i)j = 1while j <= 10:print(f"这是第{j}个小时")j += 1print("坚持!")i += 1print(f"坚持到第{i - 1}天", "还要继续努力")
- 注意空格 和 条件的设置
while循环嵌套实例
需求:
定义一个变量(number) 和 一个控制循环条件的变量(none),在while循环中,将变量number 不断的加1,然后通过if 判断number的值是否满足条件。
条件为真的时候,none则设置为 False (默认为True)
print("今有物不知其数,三三数之剩二,五五数剩三,七七数之剩二,问几何? \n")
none = True # 做为while循环的条件变量
number = 0 # 计数的变量
while none:number += 1if number % 3 == 2 and number % 5 == 3 and number % 7 == 2: # 条件满足则执行if所管控的代码print("答曰:这个数是%d" % number)none = False # 这里需要将循环条件设置为不成立
- 结果:
答曰:这个数是23
四、for循环
1、什么 是for循环
- for循环是一个依次重复执行的循环。通常用于枚举或遍历,以及迭代对象中的元素。
2、语法
for 迭代变量 in 对象:循环体
- 这里和之前的 if 、if else 、if elif else 、while一样,**注意空格缩进(**这是规则,不和其他语言所说的规范)。
3、执行流程
- 这里我用生活中的例子来解释一下该流程控制图吧
例如:在上体育课,体育老师要求同学们排队进行踢毽球测试,每个同学一次机会,毽球落地则换一个同学,直到全部同学都测是完毕,即循环结束
4、for循环的基本使用
在使用for循环的时候,最基本的应用就是进行数值循环。
例如,想要实现从1 到 100 的累加,可以通过下面的代码实现:
# 下面代码是 实现 1 到 100 的累加和 实例result = 0 # 保存累加值的变量
for i in range(101):result += i # 实现累加功能
print(f"累加和:{result}") # 循环结束输出累加后的结果
5、range()函数
在上面代码中,使用了 range()函数,该函数是 Python内置的函数,用于生成一系列连续的整数,多用于for循环语句中。
语法格式如下:
range(start, end, step)
参数说明:
- start:用于指定计数的起始值,可以省略,省略则从 0 开始。
- end: 用于指定计数的结束值(不包含该值,range(7),实际为0-6,没有7) ,不能省略,当range()函数只有一个参数时,即表示指定计数的结束值。
- step: 用于指定步长,即两数之间的间隔,可以省略,如果省略则步长为1,例如(range(1,7)返回:1、2、3、4、5、6)
6、range()函数的使用
例如,使用下面的for循环语句,将输出 10 以内的所有奇数:
代码如下:
for i in range(1,10,2):print(i,end='') # 将满足条件的i打印
结果如下:
1 3 5 7 9
代码中的end=''转义字符(不换行输出)
7、for循环实例01
需求: 使用for循环语句实现从 1 循环到 100 (不包含100),并且记录符合要求的数。
条件:今有物不知其数,三三数之剩二,五五数剩三,七七数之剩二,问几何?
代码示例:
for i in range(1,100):if i % 3 == 2 and i % 5 == 3 and i % 7 == 2:print("答曰:这个数是%d" % i)
执行结果:答曰:这个数是23
8、for循环遍历字符串
for 循环除了能够循环数值,还可以逐个遍历字符串。
代码示例:
string = '不要在说不能'
print(string) # 横向显示(直接打印)
for ch in string:print(ch) # 纵向显示(挨个打印)
- 出去上面将的两种方式,for循环还可以用于迭代列表,元组,集合,和字典等,后面会讲。
五、循环嵌套语法(总结)
在Python中,允许在一个循环体中嵌套另一个循环,称之为:循环嵌套。
- 例如:在电影院中找座位号,需要知道第几排第几列才能精确的找到自己的座位号。
如何理解呢?假如:我需要找到第二排第三列的座位号,首先需要寻找到第二排,然后再寻找第三列,这个过程就类似循环嵌套
1、while和for的相互嵌套
在 while 循环中嵌套 while 循环的语法格式:
while 条件表达式1:while 条件表达式2:循环体2循环体1
在 for 循环中嵌套 for 循环的语法格式:
for 迭代的变量1 in 对象1:for 迭代的变量2 in 对象2:循环体2循环体1
在 while 循环中嵌套 for 循环的语法格式:
while 条件表达式:for 迭代的变量 in 对象:循环体2循环体1
在 for 循环中嵌套 while循环的语法格式:
for 迭代的变量 in 对象:while 条件表达式:循环体2循环体1
-
除了上面的四种嵌套格式外,还可以实现更多层的嵌套,但都是大同小异(类似),不一一列出
六、循环嵌套-实例
使用嵌套的 for 循环打印九九乘法表,代码如下:
代码示例:
for i in range(1, 10): # 输出 9 行for j in range(1, i + 1): # 输出与行数相等的列数print(str(j) + "x" + str(i) + "=" + str(i * j) + "\t", end=' ')print('') # 执行完一行后 换行
执行结果为:
代码解释:
该实例使用了双重for循环嵌套
-
第一个循环可以看成是对行数的控制,同时也是每一个乘法公式的第二个因数
-
第二个循环控制乘法表的列数,列数的最大值等于行数,因此第二个循环的条件是在第一个循环的基础上建立的。
七、跳转语句
当循环条件一直满足时,程序会一直执行下去,就像迷路的车一样, 在某个地方不停地转圈。如果我们希望在中间离开循环,也就是for循环和while循环结束条件之前。
有两种方法可以实现:
① 使用 continue语句直接跳到循环的下一次迭代。
② 使用break 完全终止循环。
1、 break语句
break 语句可以终止当前的循环,包括 for 语句 和 while 语句在内的所有控制语句。
**例子理解:**张三一个人在操场上跑步,原计划跑10圈,在他跑到第3圈的时候,遇到了自己的女神,于是果断停下来,终止跑步。女神就 === break。
2、brake的用法:
① 在while循环中的使用
while 条件表达式1:执行代码if 条件表达式2:break
- 条件表达式2 用于判断什么时候终止循环
② 在for循环中的使用
for 迭代的变量 in 对象:if 条件表达式:break
- 条件表达式 用于判断什么时候终止循环
3、break简单的使用实例
for i in range(1, 101):if i % 3 == 2 and i % 5 == 3 and i % 7 == 2:print("答曰;这个数是%d" % i)break # 这里添加break跳出循环
经过前面的实践都知道,结果为 23 ,但是我们需要循到 100 ,没有必要,太浪费了,此时我们可以在满足条件的时候(直接使用break跳出循环)
八、continue语句
continue语句没有break语句强大,他只能终止当前一次的循环
**例子理解:**张三一个人在操场上跑步,原计划跑10圈,在他跑到第3圈的时候,遇到了自己的女神在跑步,于是果断停下来,回到起点等待自己的女神到来,(这就停止了当前的循环),女神到了起点,则继续陪着女神跑圈。直到条件结束。
1、continue 语句的使用
① 在while循环中的使用
while 条件表达式1:执行代码if 条件表达式2:continue
- 条件表达式2 用于判断什么时候跳出循环
② 在for循环中的使用
for 迭代的变量 in 对象:if 条件表达式:continue
- 条件表达式 用于判断什么时候跳出循环
2、拍腿游戏实例
需求:几个好朋友一起玩逢七拍腿游戏,从 1 开始一次数数,当数到尾数为 7 或 是 7 的倍数时,则不报该数,而是拍一下腿。(从1 到 99)99次机会
total = 99
for number in range(1, 100):if number % 7 == 0: # 是否为 7 的倍数continue # 直接跳过执行下一次循环else:string = str(number) # 类型转换if string.endswith('7'): # 字符尾数是否为 7continue # 直接跳过执行下一次循环total -= 1 # 可拍腿数 - 1
print(f"从1 数到 99共拍了 { total } 次腿") # 显示拍腿次数
说明:
当第一个if语句成立的时候,则会通过continue语句跳出本次循环,执行下一次循环,后面的代码就不会执行了。
第二个if是判断尾数是否为7 (注意数据类型转换),同样的会跳过本次执行,执行下一次循环。
如果都不满足的,则就会对 total 计数器进行 -1 操作,直到循环结束,total得到的就是拍腿的次数
九、pass空语句
作用:
- pass表示空语句,不做任何操作,就是为了占位,方便以后对不是偶数的操作(可以防止报错)
代码示例:
for i in range(1,10):# 判断是否为偶数if i % 2 == 0:print(i, end=' ')# 不是偶数else:# 占位符,不做任何操作pass
虽然对于Python中的循环语句有了学习和了解,但要完全掌握,需要不断地练习和复习(学过了直接复习案例或者实例即可)
相关文章:

Python 03(循环语句)
Python03(循环语句) 文章目录 Python03(循环语句)一、while语句二、while实现猜数字三、while循环的嵌套while循环嵌套实例需求: 四、for循环1、什么 是for循环2、语法3、执行流程4、for循环的基本使用5、range()函数6…...

安科瑞铁塔基站能耗监控解决方案
安科瑞 华楠 1 背景概述 5G发展,基站先行。5G基站的选址建设,是保证5G信号覆盖的基础,因此5G基站建设是5G产业布局的一部分,也是5G成熟的基础。 2G、3G、4G均是低频段信号传输,宏基站几乎能应付所有的信号覆盖。但由…...

操作系统-线程复用
操作系统执行线程复用的过程涉及到线程调度和管理。线程复用是指操作系统能够有效地重用现有的线程来执行新的任务,而不必每次都创建新线程。这有助于减少线程创建和销毁的开销,提高系统性能。下面是操作系统如何执行线程复用的关键步骤: 线程…...

通达信自定义副图行业指标K线指标 HYZS_QD
行业指数:HY_INDEXC,NODRAW; DRAWKLINE(HY_INDEXH,HY_INDEXO,HY_INDEXL,HY_INDEXC); MA5:MA(HY_INDEXC,5),COLORWHITE; {MA10:MA(HY_INDEXC,10),COLORYELLOW,LINETHICK2}; DRAWTEXT_FIX(1,1,1,1,STRCAT(STRCAT(CON2STR(HY_INDEXADV,0),/),STRCAT(CON2STR(HY_INDEXDEC,0), ))),…...

MDK-Keil AC6 Compiler屏蔽特定警告
最近在使用STM32CubeMX生成MDK工程是,使用了 AC6 版本的编译器进行编译代码,然后发现了一些警告,但是在 AC5 版本下编译又正常。于是研究了下怎么屏蔽特定的警告,这里记录一下。 1. Keil AC6屏蔽特定警告 遇到的警告如下&#x…...

计算机网络的故事——了解Web及网络基础
了解Web及网络基础 文章目录 了解Web及网络基础一、使用 HTTP 协议访问 Web二、HTTP 的诞生三、网络基础 TCP/IP四、与 HTTP 关系密切的协议 : IP、TCP 和 DNS 一、使用 HTTP 协议访问 Web 根据Web浏览器指定的URL,从对应的服务器中获取文件资源,从而显…...

[系统安全] 五十三.DataCon竞赛 (2)2022年DataCon涉网分析之恶意样本IOC自动化提取详解
您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列。因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全、逆向分析和恶意代码检测,“系统安全”系列文章会更加聚焦,更加系…...

自动驾驶——估计预瞄轨迹YawRate
1.Introduction 在ADAS控制系统中,通常根据预瞄距离x去估计横向距离y,有如下关系: y a0 a1 x a2 * x^2 a3 * x^3 ,那么现在有个需求,希望根据上述x和y的关系,去估计规划预瞄轨迹yawRate 2.How to es…...

PMP证书考下来要多少费用?
PMP考试共有三项费用:分为考前费用、考后费用和续证费用。 第一项是考前费用: 1、培训费用,在英文报名时需要填写培训公司名称和35学时的培训证明。一般的培训公司收费不一,有些公司大概是三千元左右,而有些公司可能…...

C动态分配
动态分布与静态发布: 静态分配 1、 在程序编译或运行过程中,按事先规定大小分配内存空间的分配方式。int a [10] 2、 必须事先知道所需空间的大小。 3、 分配在栈区或全局变量区,一般以数组的形式。 4、 按计划分配。 动态分配 1、在程序运…...

C语言——程序环境和预处理(再也不用担心会忘记预处理的知识)
了解程序环境和预处理 前言:一、程序环境二、编译链接2.1 翻译环境2.2 编译的几个阶段2.3 运行环境 三、预处理3.1 预定义符号3.2. #define的使用3.2.1 #define 定义标识符3.2.2 #define 定义宏3.2.3 #define 替换规则3.2.4 #和##的用途3.2.5 带副作用的宏参数3.2.6…...

Docker部署EMQX
1、简介 EMQ X (Erlang/Enterprise/Elastic MQTT Broker) 是基于 Erlang/OTP 平台开发的开源物联网 MQTT 消息服务器。 Erlang/OTP是出色的软实时 (Soft-Realtime)、低延时 (Low-Latency)、分布式 (Distributed)的语言平台。 MQTT 是轻量的 (Lightweight)、发布订阅模式 (Pu…...

Spring Cloud(Finchley版本)系列教程(二) 客户端负载均衡Ribbon
Spring Cloud(Finchley版本)系列教程(二) 客户端负载均衡Ribbon 目前主流的负载均衡方案有两种,一种是集中式均衡负载,在消费者与服务提供者之间使用独立的代理方式进行负载,比如F5、Nginx等。另一种则是客户端自己做负载均衡,根据自己的请求做负载,Ribbon就属于客户端自…...

好玩的js特效
记录一些好玩的js特效 1、鱼跳跃特效 引入jquery:https://code.jquery.com/jquery-3.7.1.min.js 源码如下: <!--引入jquery--> <script src"https://code.jquery.com/jquery-3.7.1.min.js"></script> <!--引入跳跃源码--> <s…...

java实现带有html格式和附件的符合RFC822规范的eml格式的信件原文组装
1. 传递html格式的eml信件正文 html传递就是解析成带有< html>标签的字符串在正文中传递即可 From:综合运行平台 to:111qq.com // 重点是格式设置成text/html 编码的话需要设置成UTF-8,不然可能直接在正文中展示html标签,为不是解析成具体的样式…...

如何使用PyTorch训练LLM
推荐:使用 NSDT场景编辑器 快速搭建3D应用场景 像LangChain这样的库促进了上述端到端AI应用程序的实现。我们的教程介绍 LangChain for Data Engineering & Data Applications 概述了您可以使用 Langchain 做什么,包括 LangChain 解决的问题…...

uniapp 手机 真机测试 云打包 要是没申请 可以使用云打包 然后采用 测试权限即可
uniapp 手机 真机测试 打开手机 找到手机的 版本号 点击 知道提示 (启动开发者模式) 然后 在进行usb的连接打开 运行uniapp 到手机基台 手机确认 即可 四, 云打包 要是没申请 可以使用云打包 然后采用 测试权限即可...

RTSP流媒体服务器EasyNVR视频平台以服务方式启动异常却无报错,该如何解决?
EasyNVR是基于RTSP/Onvif协议的安防视频云服务平台,可实现设备接入、实时直播、录像、检索与回放、云存储、视频分发、级联等视频能力服务,可覆盖全终端平台(电脑、手机、平板等终端),在智慧工厂、智慧工地、智慧社区、…...

【List篇】使用Arrays.asList生成的List集合,操作add方法报错
早上到公司,刚到工位,测试同事就跑来说"功能不行了,报服务器异常了,咋回事";我一脸蒙,早饭都顾不上吃,要来了测试账号复现了一下,然后仔细观察测试服务器日志,发现报了一个…...

c++的类模板里,可以直接为静态变量赋值么?
一直以来,咱们学的是,给类模板里的静态变量赋值,要在类外面。但对于类常量,则可以直接在定义时赋值。起因是看STL源码时有这么的写法,又验证了一下。 但是在类模板里直接定义静态活动变量是不可以的,即去…...

【录用案例】CCF-C类,1/2区SCIEI,3个月14天录用,30天见刊,11天检索
计算机科学类SCI&EI 【期刊简介】IF:5.5-6.0,JCR1/2区,中科院2区 【检索情况】SCI&EI 双检(CCF-C类) 【征稿领域】边缘计算、算法与机器学习的结合研究 录用案例:3个月14天录用,录用…...

qt day 3
1.完成自定义的记事本文件的保存功能 ------------------------------------------------------------------------- widget.cpp ------------------------------------------------------------------------- #include "widget.h" #include "ui_widget.h"…...

SpotBugs检查java代码:在整数上进行没有起任何实际作用的位操作(INT_VACUOUS_BIT_OPERATION)
https://spotbugs.readthedocs.io/en/latest/bugDescriptions.html#int-vacuous-bit-mask-operation-on-integer-value-int-vacuous-bit-operation 在整数上进行无用的与、异或操作,实质上没有做任何有用的工作。 例如:v & 0xffffffff 再例如&…...

javaWeb录入数据异常,mysql显示错误
由于项目,需要输入 电脑的mac地址 ,在web页面中进行录入,但是某个同事录入一直有问题,数据查询时使用 in 或者 都查询不到 通过like %% 可以查询到,非常奇怪,请广大网友不吝赐教. 通过 toHex 进行显示发现 数据开头多了 E2808E...

Vue + Element UI 前端篇(十):动态加载菜单
Vue Element UI 实现权限管理系统 前端篇(十):动态加载菜单 动态加载菜单 之前我们的导航树都是写死在页面里的,而实际应用中是需要从后台服务器获取菜单数据之后动态生成的。 我们在这里就用上一篇准备好的数据格式Mock出模…...

图的应用(最小生成树,最短路径,有向无环图)
目录 一.最小生成树 1.生成树 2.无向图的生成树 3.最小生成树算法 二.最短路径 1.单源最短路径---Dijkstra(迪杰斯特拉)算法 2.所有顶点间的最短路径---Floyd(弗洛伊德)算法 三.有向无环图的应用 1.AOV网(拓扑…...

python正则表达式笔记2
由 \ 和一个字符组成的特殊序列在以下列出。 如果普通字符不是ASCII数位或者ASCII字母,那么正则样式将匹配第二个字符。比如,\$ 匹配字符 $. \number 匹配数字代表的组合。每个括号是一个组合,组合从1开始编号。 比如 (.) \1 匹配 the the 或…...

matplotlib 的默认字体和默认字体系列
matplotlib 的默认字体和默认字体系列 查看默认字体和默认字体系列查看默认字体系列下包含的字体查看 plt.rcParams 设置的所有参数查看所有支持的字体格式设置默认字体方法1:方法2 今天给大家介绍一下 matplotlib 包中的默认字体以及默认字体系列。 查看默认字体和…...

STMCUBEMX_IIC_DMA_AT24C64读取和写入
STMCUBEMX_IIC_DMA_AT24C64读取和写入 说明: 1、此例程只是从硬件IIC升级到DMA读写,因为暂时存储的掉电不丢失数据不多,一页就可以够用,不用担心跨页读写的问题 2、使用DMA后,程序确实是变快了,但是也要注意…...

wsl2相关问题
磁盘空间 wsl 删除相关文件后,如删除docker 无用的容器和镜像,windows上磁盘仍然无法自动回收空间 (参考:[microsoft/WSL](https://github.com/microsoft/WSL/issues/4699#issuecomment-627133168)) # 如清除无用do…...