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,8for i in range(0, 10, 3) :print(i)#0,3,6,9for i in range(-10, -100, -30) :print(i)#-10,-40,-70  

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

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

countdown = 5while 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 = Nonewhile guess != secret_number:guess = int(input("请输入你猜的数字:"))if guess == secret_number:print("恭喜,你猜对了!")breakelif 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 = 6for 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.mzph.cn/news/822685.shtml

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

相关文章

2024 年排名前 5 的 CSS 框架

文章目录 1、Bootstrap2、Tailwind CSS3、Foundation4、Bulma5、UIKit 1、Bootstrap Bootstrap框架是由Twitter的设计师Mark Otto和Jacob Thornton合作开发的&#xff0c;于2011年8月在GitHub上发布。它是目前最受欢迎的前端框架之一&#xff0c;被广泛应用于各种Web项目中。Bo…

使用 usePrevious 实现 React 函数组件中上一状态值的追踪

在 React 开发过程中&#xff0c;有时我们需要在函数组件的某个阶段或事件处理函数中访问到上一次的状态值。然而&#xff0c;React 并未提供直接获取上一状态的内置机制。为了解决这个问题&#xff0c;我们可以采用一种名为 usePrevious 的自定义 Hook。本文将详细介绍 usePre…

mac apktool安装

在macOS上安装Apktool需要几个步骤。以下是安装Apktool的一般指南&#xff1a; 安装Java&#xff1a; 确保你的Mac上安装了Java。你可以通过在终端运行java -version来检查Java是否已经安装。如果还没有安装&#xff0c;你可以从Oracle官网下载并安装Java。 下载Apktool&#…

最新Latex2024安装教程 超简单

Latex是一款常用的论文写作工具&#xff0c;今天小菜介绍Latex的安装配置过程。 1. 来到官网下载镜像文件 https://www.tug.org/texlive/ 按步骤点击&#xff1a; 就会进入一个最近的镜像网站&#xff0c;选择textlive2024.iso即可 下载完成之后解压&#xff0c;安装路径…

Linux02(项目部署,手动和自动部署,JDK版本问题,安装软件,安装软件,安装JDK,Tomcat,MySQL,Irzsz)

目录 一、安装软件 1. 安装准备工作 1 Linux里的软件安装方式 2 上传软件到Linux 3 拍照虚拟机快照 2. 安装JDK 1 卸载自带jdk 2 解压JDK 3 配置环境变量 4 测试JDK 3. 安装Tomcat 1 解压Tomcat 2 修改防火墙设置 3 测试Tomcat 启动Tomcat 访问Tomcat 查看Tom…

javascript 统计按钮点击量

要实现计算按钮被点击的次数&#xff0c;我们可以借助JavaScript中的事件监听器。事件监听器可以帮助我们捕获用户在网页上的各种操作&#xff0c;如点击按钮、输入文本等。通过监听按钮的点击事件&#xff0c;我们可以在每次点击时进行相应的操作&#xff0c;例如增加点击计数…

Python 配置文件config.ini用法详解

1、介绍config.ini文件 config.ini是一种配置文件&#xff0c;常用于存储程序或系统的配置信息。它通常采用键值对的形式&#xff0c;每一行表示一个配置项&#xff0c;用等号&#xff08;&#xff09;将键和值分隔开。config.ini文件可以包含多个节&#xff08;section&#x…

git 小记

一、 github新建仓库 git clone 。。。。。。。。。。。 &#xff08;增删查补&#xff0c;修改&#xff09; git add . git commit -m "修改” git push (git push main) 二、branch 分支 branch并不难理解&#xff0c;你只要想像将代码拷贝到不同目录…

如何在Python中使用环境变量? —— Python环境变量的应用:安全和灵活的配置方法

在Python中&#xff0c;可以使用os模块来访问和操作环境变量。 要访问一个环境变量的值&#xff0c;可以使用os.environ字典。例如&#xff0c;要获取PATH环境变量的值&#xff0c;可以使用os.environ[PATH]。 要设置一个环境变量的值&#xff0c;可以使用os.environ字典的索…

vue一键复制实现(实测)

vue一键复制实现&#xff08;实测&#xff09; 描述&#xff1a;能够通过点击事件完成复制链接的功能 1. 安装clipboard npm install clipboard --save 2. 在vue组件中使用 <template><button class"btn" :data-clipboard-text"link">复制&…

MongoDB的CURD(增删改查操作)

读者大大们好呀&#xff01;&#xff01;!☀️☀️☀️ &#x1f525; 欢迎来到我的博客 &#x1f440;期待大大的关注哦❗️❗️❗️ &#x1f680;欢迎收看我的主页文章➡️寻至善的主页 ✈️如果喜欢这篇文章的话 &#x1f64f;大大们可以动动发财的小手&#x1f449;&#…

刷代码随想录有感(34):前k个高频元素

本题代码涉及到了多个陌生概念&#xff0c;题干如下&#xff1a; 代码; class Solution { public:class mycomparison{//自定义规则&#xff0c;使优先队列可以自动排序public:bool operator()(pair<int, int> & lhs, pair<int, int> & rhs){return lhs.s…

第十五届蓝桥杯大赛软件赛省赛 C/C++ 大学 B 组(基础题)

试题 C: 好数 时间限制 : 1.0s 内存限制: 256.0MB 本题总分&#xff1a;10 分 【问题描述】 一个整数如果按从低位到高位的顺序&#xff0c;奇数位&#xff08;个位、百位、万位 &#xff09;上 的数字是奇数&#xff0c;偶数位&#xff08;十位、千位、十万位 &…

SQLSERVER对等发布问题处理

问题1&#xff1a; 无法对 数据库Sast_Business 执行 删除&#xff0c;因为它正用于复制。 (.Net SqlClient Data Provider) 处理&#xff1a; USE [master]; GO EXEC sp_replicationdboption dbname NSast_Business, optname Npublish, value Nfalse; EXEC sp_replica…

如何保障UDP传输中数据文件不丢失?

UDP协议因其低时延和高速传输的特性&#xff0c;在实时应用和大量数据传输领域中发挥着不可或缺的作用。但是&#xff0c;由于UDP是一种无连接的通讯协议&#xff0c;它并不确保数据包的顺序、完整性和可靠性。 为了解决UDP传输中数据一致性的问题&#xff0c;技术专家们进行了…

【Linux系统编程】第四弹---基本指令(二)

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、echo指令 2、cat指令 3、more指令 4、less指令 4、head指令 5、tail指令 6、时间相关的指令 7、cal指令 8、find指…

前端错误监控的方法有哪些

前端错误监控是指通过各种手段收集、分析和处理前端应用运行中发生的错误 常用的前端错误监控的方法有 使用 try catch 方法 捕获特定代码块中的错误多用于处理特定函数或代码段可能抛出的异常&#xff0c;尤其是异步代码网络请求错误监控 promise.catchtry catch全局错误处理…

Wix在国内受限?为何不使用中国版WIX自助建站,wix的国产替代工具

wix是一款知名的在线网站建站工具&#xff0c;能让用户在其网络上网站编辑器中拖放工具创建HTML5网站。用户可在他们的网站编辑器中加入额外的功能&#xff0c;例如社交网络按钮、电子商务功能、联系表格、电子报及社群论坛等。 但wix在国内不能用&#xff0c;或打开速度很慢&a…

事务相关:TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();

1&#xff09;当我们需要对一个事件增加事务时&#xff0c;可以使用Transactional(rollbackFor Exception.class)&#xff0c;但此时由于抛出了异常&#xff0c;return方法无法继续执行。 2&#xff09;此时&#xff0c;我们就需要手动触发事务&#xff0c;看代码如下&#x…

蓝桥杯C/C++A组省赛历年真题题解(2020~2024)

刷题整理2020~2024蓝桥A组真题。 20202021202220232024门牌制作卡片&#xff08;模拟题&#xff09;裁纸刀幸运数(数字&#xff09;艺术与蓝球(模拟)既约分数直线&#xff08;数学枚举&#xff09;灭鼠先锋有奖问答(dfs)五子棋对弈(dfs)蛇形填数货物摆放(因子暴力枚举&#xf…