python笔记(13)循环

目录

1. for循环

1.1 使用range()函数

2. while循环:基于条件的持续执行

3. 循环控制语句

3.1 break语句

3.2 continue语句

3.3 else子句(仅适用于for和while循环)

4. 循环的最佳实践与注意事项


本文将深入探讨Python中两种主要的循环结构:for循环和while循环,以及与循环密切相关的控制流语句——breakcontinueelse。通

1. for循环

for循环是Python中用于迭代有序数据结构(如列表、元组、集合、字典、字符串等)的首选工具。其简洁的语法使得遍历序列中的每个元素变得轻松自如。

fruits = ["苹果", "香蕉", "橙子", "柚子", "西瓜"]

for fruit in fruits:
    print(f"品尝美味的{fruit}")
#输出为:
'''品尝美味的苹果
品尝美味的香蕉
品尝美味的橙子
品尝美味的柚子
品尝美味的西瓜'''

在上述代码中,for fruit in fruits:语句初始化了一个循环,将fruits列表中的每一个元素依次赋值给变量fruit。紧接着的缩进代码块在每次迭代中被执行,打印出当前水果的名称。for循环自动管理迭代过程,无需手动跟踪索引或修改迭代变量。

1.1 使用range()函数

除了直接遍历已存在的序列,Python还提供了内置函数range()来生成一个整数序列,常用于需要循环指定次数的情况:

for i in range(10):
    print(f"这是第{i+1}次循环")
'''输出为:
这是第1次循环
这是第2次循环
这是第3次循环
这是第4次循环
这是第5次循环
这是第6次循环
这是第7次循环
这是第8次循环
这是第9次循环
这是第10次循环'''

range(10)产生一个包含从0到9(不含10)的整数序列。循环体内部,i依次取这些整数值,并打印出对应的循环次数。

range()的用法如下,可以用作当索引,例如大小是集合的len(),可以遍历索引

for i in range(5,9):
  print(i)#5,6,7,8

for i in range(0, 10, 3) :
    print(i)#0,3,6,9

for i in range(-10, -100, -30) :
   print(i)#-10,-40,-70  

2. while循环:基于条件的持续执行

while循环根据给定的布尔条件来决定是否继续执行循环体内的代码。只要条件保持为True,循环就会一直进行下去。当条件变为False时,循环终止。

countdown = 5

while countdown > 0:
    print(f"倒计时:{countdown}")
    countdown -= 1
'''输出为
倒计时:5
倒计时:4
倒计时:3
倒计时:2
倒计时:1
'''

在这个例子中,while countdown > 0:定义了循环条件。每次循环结束后,都会递减countdown的值。当countdown降至0时,条件不再满足,循环自然结束。

3. 循环控制语句

3.1 break语句

break语句用于立即退出当前正在执行的最内层循环,无论循环条件是否仍然为真。它通常与某种条件检查结合使用,以便在特定情况下提前终止循环。

secret_number = 42
guess = None

while guess != secret_number:
    guess = int(input("请输入你猜的数字:"))
    
    if guess == secret_number:
        print("恭喜,你猜对了!")
        break
    elif guess < secret_number:
        print("猜小了,再试试!")
    else:
        print("猜大了,继续努力!")
'''请输入你猜的数字:41
猜小了,再试试!  
请输入你猜的数字:43
猜大了,继续努力!
请输入你猜的数字:42
恭喜,你猜对了!'''

当用户猜中秘密数字时,break语句确保循环立即结束,避免了不必要的后续迭代。

3.2 continue语句

continue语句用于跳过当前循环迭代的剩余部分,直接进入下一次迭代。这在需要忽略某些情况或者提前更新循环变量以进行下一轮时非常有用。

numbers = [1, 3, 5, 8, 1/4, 10]

for num in numbers:
    if not isinstance(num, int):
        continue  # 跳过非整数元素
    if num % 2 == 0:
        print(f"{num} 是偶数")
    else:
        print(f"{num} 是奇数")
'''会跳过1/4 ,如果不写这个判断的话会走到else
运行结果:
1 是奇数
3 是奇数 
5 是奇数 
8 是偶数 
10 是偶数
'''

在此示例中,当遇到非整数元素时,continue语句使得循环直接跳过对该元素的处理,仅对整数执行奇偶性检查。

3.3 else子句(仅适用于forwhile循环)

Python的forwhile循环可以包含一个可选的else子句。这个子句紧跟在循环主体之后,且无需缩进。当循环正常结束(即没有被break语句中断)时,else子句中的代码会被执行。这对于区分“找到”和“未找到”等场景尤为实用。

search_list = [3, 5, 7, 9, 12]

target = 6

for item in search_list:
    if item == target:
        print(f"找到了目标值 {target}!")
        break
else:
    print(f"列表中未找到目标值 {target}。")

如果循环遍历完整个列表都没有找到匹配的目标值,else子句中的代码会被执行,通知用户目标值不在列表中。

4. 循环的最佳实践与注意事项

  • 避免无限循环:确保while循环的条件最终能够变为False,防止程序陷入无休止的循环中。

  • 适当使用breakcontinue:虽然它们能提供灵活的控制流,但过度使用可能导致代码难以理解和维护。尽量使循环逻辑清晰、简洁。

  • 理解for循环的迭代原理:对于复杂的迭代对象(如多层嵌套结构或自定义迭代器),确保理解其迭代行为,以正确遍历所需元素。

  • 利用列表推导式和生成器表达式:对于简单的数据转换和过滤任务,可以考虑使用列表推导式或生成器表达式代替显式的循环,以提高代码的简洁性和效率。

  • 避免修改正在迭代的序列:在for循环中直接修改正在遍历的序列可能导致意外行为。如果需要修改,可考虑先复制一份副本进行操作,或者使用enumerate()等方法间接修改。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

分布式光纤测温解决方案

安科瑞电气股份有限公司 祁洁 15000363176 一、方案介绍 分布式光纤测温&#xff08;DTS&#xff09;集光电信号检测、计算机技术等为一体&#xff0c;具有实时监测、测温精度高、测量距离长、可精确定位、采用光纤作为传感器和传输介质&#xff0c;具有抗电磁干扰、本征防…

GVRP协议与动态、静态vlan

一、GVRP协议使用场景 1、当实际组网复杂到网络管理员无法短时间内了解网络的拓扑结构&#xff0c;或者是整个网络的VLAN太多时&#xff0c;工作量会非常大&#xff0c;而且非常容易配置错误。在这种情况下&#xff0c;用户可以通过GVRP的VLAN自动注册功能完成VLAN的配置。 2、…

【Vue3】setup语法糖的使用

文章目录 setup简介使用vite-plugin-vue-setup-extend插件 指定组件名字 setup简介 <script setup> 是在单文件组件 (SFC) 中使用组合式 API 的编译时语法糖 相比较普通的<script> ,它有以下优势&#xff1a; 更少的样板内容&#xff0c;更简洁的代码。能够使用纯…

【教程】如何使用ArcPy快速批量的处理数据

前面介绍了如何构建自己的ArcGIS工具箱&#xff0c;能够极大地减轻繁琐重复的工作&#xff0c;可查看&#xff1a; 【教程】如何自制一个ArcGIS工具箱&#xff08;ArcPy和模型构建器的使用&#xff09; 除了制作工具箱来实现自动处理重复性的工作&#xff0c;还可以使用ArcPy…

解决Error (169281)、Error (169282)报错问题,QuartusII设置Virtual Pin虚拟管脚的详细操作方法

解决Error(169281)、Error(169282)报错问题,QuartusII设置Virtual Pin虚拟管脚的详细操作方法 1,QuartusII报错信息2,解决办法3,重新编译,成功参考文献: 1,Quartus如何设置虚拟管脚Virtual Pin(具体设置方法) 1,QuartusII报错信息 报错原因:    为了验证FPGA工…

vr兽医设备操作模拟仿真教学平台提升教学效果

在兽医教育的传统领域中&#xff0c;动物诊疗一直是一项不可或缺的实践环节。然而&#xff0c;传统的解剖教学方式受限于动物数量、种类以及安全隐患&#xff0c;无法充分满足学生的学习需求。随着VR虚拟仿真技术的不断精进&#xff0c;VR动物诊疗仿真实训系统为兽医教育带来了…

福州复式装修,115平四室三厅现代简约风。福州中宅装饰,福州装修

设计亮点 设计理念&#xff1a; 静享时光谧境 克制的优雅&#xff0c;简约的沉淀 以光为引&#xff0c;以意为境 案例简介&#xff1a; 该方案现代风格为整个设计带来现代的舒适感&#xff0c;各种材质相互碰撞的设计&#xff0c;即保持着整齐的视感&#xff0c;又将高级气质凸…

所有人记住!电商选品千万别学会这6个步骤!我怕你流量池爆掉!

电商选品是一个非常重要的环节&#xff0c;它直接关系到店铺的流量、销售以及客户的满意度&#xff0c;做好选品才能打造爆款产品&#xff0c;提升流量和销售。因此&#xff0c;正确的电商选品步骤是至关重要的。以下是一些店雷达帮大家梳理的关键电商选品步骤以及运营建议&…

全国产化无风扇嵌入式车载电脑在救护车远端诊断的行业应用

救护车远端诊断的行业应用 背景介绍 更加快速的为急症病人在第一时间开始进行诊断和治疗,是提高病人救助成功率的关键。因此&#xff0c;先进的救护系统正在思考&#xff0c;如何在病人进入救护车之后&#xff0c;立刻能够将救护车中各种检查仪器的信息快速的传回医院&#xf…

移动端vue3使用pdfjs在浏览器上面运行正常,在移动端页面报错出现空白页

1.PDFjs文件包&#xff1a; 分享一下PDFjs文件包&#xff0c;这是我在其他博客那里找到的&#xff0c;找了好久&#xff0c;在官网下载一天了&#xff0c;一直下载失败&#xff0c;只能去找其他人的。我也想把这个包分享给大家&#xff0c;真心好用。一开始我的浏览器页面一直…

黄仁勋最新访谈:GPU性能的革命性提升与AI未来

近期&#xff0c;英伟达CEO黄仁勋与美国CNBC知名主持人、股评人吉姆克莱默&#xff08;Jim Cramer&#xff09;在《Mad Money》节目中展开了一场关于技术未来和人工智能的对话。访谈里&#xff0c;黄仁勋不仅提到了英伟达在过去八年中将AI算力性能提高1000倍&#xff0c;还预言…

前端Vue3+uni+Ts

本次记录小兔仙仙的制作过程。 先看下我们的项目截图。主要是手机端&#xff0c;这里用了uniappVScode.三端适配的。可以打包成安卓和苹果。微信小程序。 首先&#xff1a;创建一个uni新的ts项目。 # 通过 git 从 gitee 克隆下载 登录 - Gitee.com git clone -b vite-ts http…

记录-海思开发板的 嵌入式nginx和 php的移植(交叉编译环境配置)

嵌入式 lnmp搭建的记录 N&#xff1a;NginxP&#xff1a;php编译PHP可能遇到的问题configure阶段&#xff1a;Makefile-make阶段&#xff1a;Makefile-make install阶段&#xff1a; 文章比较水&#xff0c;并没有没解决什么实际问题&#xff0c;有点不好意思发布。但好像又记录…

【剪映专业版】08剪映电脑版剪辑基本操作流程

视频课程&#xff1a;B站有知公开课【剪映电脑版教程】 第一个时间是当前时间指示器所在时间&#xff0c;第二个时间是总长 撤销、恢复、分割 向左裁剪、向右裁剪&#xff1a;以时间指示器为起始&#xff0c;去掉左边或者右边的内容 删除 主轨道&#xff1a;有封面的这个轨道 …

如何入行产品经理?

转产品经理第一点要先学基础理论知识&#xff0c;学了理论再去实践&#xff0c;转行&#xff0c;跳槽&#xff01; 学理论比较好的就是去报NPDP的系统班&#xff0c;考后也会有面试指导课&#xff0c;跟职场晋升课程&#xff0c;对小白来说非常合适了~&#xff08;可以去哔站找…

嵌入式硬件需要过哪几关?

目标是成为一名硬件工程师,用电烙铁和电路板一统江湖,游戏共有九关。 第一关:基础基础还是基础! 你要有一定的基础,模电,数电这些都得会一些。一般科班出身的专业有电信,通信,自动化等等。 你如果完全没这些基础,连电阻,电容都不认识,那就需要在这关待上很久啦。 …

走近网络安全公司:F5探索应用安全至简之道

伴随企业加速数字化转型工作、扩展到新的基础设施环境并采用微服务架构&#xff0c;企业正在拥抱混合和多云基础设施所带来的灵活性。现在跨越四种环境部署应用的企业&#xff0c;其平均需要管理和保护的应用数据路径比应用仅限本地部署时多10倍&#xff0c;复杂性呈指数级增加…

Photoshop 2024 (ps) v25.6中文 强大的图像处理软件 mac/win

Photoshop 2024 for Mac是一款强大的图像处理软件&#xff0c;专为Mac用户设计。它继承了Adobe Photoshop一贯的优秀功能&#xff0c;并进一步提升了性能和稳定性。 Mac版Photoshop 2024 (ps)v25.6中文激活版下载 win版Photoshop 2024 (ps)v25.6直装版下载 无论是专业的设计师还…

常见面试算法题-九宫格按键输入法

■ 题目描述 九宫格按键输入&#xff0c;判断输出&#xff0c;有英文和数字两个模式&#xff0c;默认是数字模式&#xff0c;数字模式直接输出数字&#xff0c;英文模式连续按同一个按键会依次出现这个按键上的字母&#xff0c;如果输入”/”或者其他字符&#xff0c;则循环中…

Transformer with Transfer CNN for Remote-Sensing-Image Object Detection

遥感图像&#xff08;RSI&#xff09;中的目标检测始终是遥感界一个充满活力的研究主题。 最近&#xff0c;基于深度卷积神经网络 (CNN) 的方法&#xff0c;包括基于区域 CNN 和基于 You-Only-Look-Once 的方法&#xff0c;已成为 RSI 目标检测的事实上的标准。 CNN 擅长局部特…
最新文章