提升代码逻辑的感觉——python循环语句
提升代码逻辑的感觉——python循环语句
简介
循环是编程中的一个非常重要的概念,它用于处理重复性任何和迭代草错,通过循环我们能优化并简化代码,提高代码的可维护性,在Python中循环是一种控制结构,允许我们重复执行特定的代码块,直到达到某个条件或执行特定次数为止。循环是一种迭代结构,用于处理重复的任务、遍历数据集合等。
循环的目的是解决需要重复做相同事情的问题,而不是一遍又一遍地重复编写相同的代码。通过使用循环,我们可以通过更少的代码来实现重复的操作。
python中循环的基本类型
while 循环:
while 循环在给定条件为真时重复执行代码块。它先对条件进行检查,如果条件为真,则执行代码块,然后再次检查条件。如果条件仍为真,则继续重复执行代码块,直到条件为假时终止循环。
while condition:# 代码块
-
当我们需要根据一个条件重复执行代码块时,可以使用
while循环。下面是一个详细的示例,演示了while循环的用法:count = 0 while count < 5:print(f"Count: {count}")count += 1在上述代码中,我们定义了一个名为
count的变量,并初始化为 0。然后使用while循环,设置条件count < 5,也就是count小于 5 时循环继续执行。循环内部的代码块是通过缩进表示的,会重复执行直到条件为假(即
count不再小于 5)。在每次循环迭代时,我们打印出当前count的值,并将count增加 1,以便在下一次循环时递增。输出结果:
Count: 0 Count: 1 Count: 2 Count: 3 Count: 4从输出结果可以看出,
while循环在每次迭代中打印出count的值,并逐渐递增,直到达到循环终止条件(count不再小于 5)为止。
for 循环:
for 循环用于遍历可迭代对象(如列表、字符串等)中的元素,对每个元素执行相同的代码块。它会依次取出序列中的每个元素,直到所有元素都被遍历完为止,它与while循环的判断条件相反,当条件为假,则执行代码块。
for variable in iterable:# 代码块
在 for 循环中,variable 是一个变量名,用于存储每次循环迭代中的元素值。iterable 是一个可迭代对象,可以是列表、字符串、元组等。
- 遍历列表:遍历一个列表中的元素,并将每个元素进行操作。
fruits = ["apple", "banana", "orange"]
for fruit in fruits:print(fruit)
- 遍历字符串:遍历一个字符串的每个字符,并执行操作。
message = "Hello, World!"
for char in message:print(char)
- 遍历字典:遍历一个字典的键或值,并进行相应的处理。
person = {"name": "John", "age": 25, "city": "New York"}
for key in person:print(key, "=", person[key])
- 遍历数字范围:使用
range()函数生成一系列数字,并进行操作。
for num in range(1, 5):print(num)
控制关键字
break:
break关键字用于跳出当前所在的循环,终止循环的执行。- 当执行
break语句时,程序会立即退出当前循环,并继续执行循环之后的代码。 break可以用于跳出for循环和while循环。无论在哪种循环中,一旦满足某个条件,执行break后循环会立即停止。
示例:
for i in range(1, 6):if i == 3:breakprint(i)
输出结果:
1
2
在上述示例中,当 i 的值等于 3 时,执行了 break 语句,从而跳出了 for 循环。
continue:
continue关键字用于终止当前迭代的循环,然后开始下一次迭代。- 当执行
continue语句时,程序会跳过当前迭代中的剩余代码,并开始下一次迭代的执行。 continue只能用于循环中,可以在for循环或while循环中使用。
- 当执行
示例:
for i in range(1, 6):if i == 3:continueprint(i)
输出结果:
1
2
4
5
在上述示例中,当 i 的值等于 3 时,执行了 continue 语句。这导致该迭代被跳过,程序开始下一次迭代。
总结:
break用于立即终止整个循环的执行。continue用于终止当前迭代的执行,然后开始下一次迭代。- 通过
break和continue,我们可以根据特定条件自定义循环的控制流程,实现更灵活和精确的控制。
循环的嵌套
循环的嵌套指的是在一个循环体中包含另一个循环结构,即将一个循环放置在另一个循环内部。这样做的目的是在特定条件下多次执行内层循环,使程序能够处理更复杂的任务和数据结构。
在 Python 中,我们可以使用 for 循环和 while 循环来实现循环的嵌套。以下是两个个示例,展示了循环嵌套的用法:
for循环嵌套
for i in range(1, 4):for j in range(1, 4):print(i, j)
在上述示例中,外层循环使用 for 循环,迭代变量 i 的值从 1 到 3(不包括 4)。内层循环也是使用 for 循环,迭代变量 j 的值从 1 到 3(不包括 4)。因此,内层循环中的代码块会在每次外层循环迭代时执行 3 次。
输出结果:
1 1
1 2
1 3
2 1
2 2
2 3
3 1
3 2
3 3
在输出结果中,我们可以看到变量 i 和 j 的值从 1 到 3 进行组合,形成了一个 3x3 的表格。
while循环嵌套
i = 1
while i <= 3:j = 1while j <= 3:print(i, j)j += 1i += 1
在上述示例中,外层循环使用 while 循环来迭代变量 i,只有在 i 小于等于 3 的情况下才会执行循环。内层循环也是使用 while 循环,迭代变量 j 只有在 j 小于等于 3 的情况下才会执行循环。
输出结果:
1 1
1 2
1 3
2 1
2 2
2 3
3 1
3 2
3 3
在输出结果中,我们可以看到变量 i 和 j 的值从 1 到 3 进行组合,形成了一个 3x3 的表格。
嵌套循环在处理多维数据结构、生成组合或排列、遍历嵌套列表等场景中非常有用。然而,需要注意控制循环的嵌套层数和合理设计内外层循环的条件和逻辑,以避免产生无限循环或逻辑错误。
总结
分支结构和循环结构,都是编程中的非常重要的概念,正确的使用它们可以解决很多实际的问题。
while循环它适合用于需要在满足某个条件时重复执行代码的环境:
-
需要根据特定条件不断迭代执行的任务:
while循环提供了一种方法,可以使用条件判断来控制循环是否继续执行。只要条件为真,代码块就会继续执行,循环会一直持续下去,直到条件为假。 -
处理动态条件的情况:在某些情况下,循环的退出条件可能是在循环的过程中动态改变的,而不是在循环开始时就确定的。
while循环可以根据任何条件的改变来灵活地调整循环行为。 -
实现更复杂的逻辑流程:
while循环可以嵌套在其他循环中或与其他条件语句结合使用,以实现更复杂的逻辑控制和条件流程。通过适当设计循环条件和循环体内的操作,可以实现各种复杂的循环结构。
for循环它使用用于它主要用于遍历可迭代对象中的元素
-
遍历序列或集合中的元素:通过
for循环,可以便捷地遍历列表、字符串、元组和集合等对象中的每个元素,并对它们进行操作。 -
迭代固定次数的循环:使用
range()函数结合for循环,可以轻松实现在特定范围内重复执行固定次数的任务。 -
遍历字典的键或值:
for循环可以用于遍历字典的键,并通过键来访问字典中的值,或者直接遍历字典的值。
而break和continue的区别就在于
break用于立即终止当前所在循环结构的执行,跳出循环。continue用于跳过当前迭代中剩余的代码,并开始下一次迭代。break和continue是在循环中控制流程的关键字,能够提高代码的灵活性和执行效率。- 但是,它们的使用需要谨慎,以确保循环逻辑的正确性和代码的可读性。
相关文章:
提升代码逻辑的感觉——python循环语句
提升代码逻辑的感觉——python循环语句 简介 循环是编程中的一个非常重要的概念,它用于处理重复性任何和迭代草错,通过循环我们能优化并简化代码,提高代码的可维护性,在Python中循环是一种控制结构,允许我们重复执行…...
【ARM Coresight 系列文章 20 -- linux perf 与 ARM coresight】
文章目录 1.1 Perf Introduction1.1.1 Perf 架构图1.1.2 Perf Tools 介绍1.1.3 Perf 命令介绍1.2 Events1.2.1 Perf 与 PMU 的关系1.2.2 Hardware events1.2.1.1 linux perf 事件分类1.2.2 Software Events1.2.3 Tracepoint Events1.3 Perf 工具使用1.4 用户态开发1.4.1 用户态…...
微服务之Nacos
1 版本说明 官网地址: https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E 1.1 2021.x 分支 适配 SpringBoot 2.4, Spring Cloud 2021.x 版本及以上的Spring Cloud Alibaba 版本如下表(最新版本用*标记&am…...
jvm 新生代的区域划分
虚拟机将内存分为一块较大的 Eden 空间和两块较小的 Survivor 空间,每次分配内存只使用 Eden 和其中一块 Survivor。发生垃圾收集时,将 Eden 和 Survivor 中仍然存活的对象一次性复制到另外一块 Survivor 空间上,然后直接清理掉 Eden 和已用过…...
【C++】对于string的补充(成员函数c_str()、大小写转换、字符串和实数之间的相互转换)
前言 本篇文章记录的是一些关于string的补充说明 string与const char*之间的相互转换 const char* 转换成string 在C中存在着从const char到string的隐式类型转换,换句话说,如果一个函数的参数类型是string类,直接传入const char类型的参…...
华为OD机试真题【羊狼农夫过河】
1、题目描述 【羊、狼、农夫过河】 羊、狼、农夫都在岸边,当羊的数量小于狼的数量时,狼会攻击羊,农夫则会损失羊。农夫有一艘容量固定的船,能够承载固定数量的动物。要求求出不损失羊情况下将全部羊和狼运到对岸需要的最小次数。…...
【线性代数-3Blue1Brown】- 5 三维空间的线性变换
飞书原文档:Docs...
Maven入门教程(二):idea/Eclipse使用Maven
Maven入门教程(一):安装Maven环境 4.开发工具配置 4.1 idea配置 idea有多个版本,配置是一样的,只是配置页面的入口不一样 旧版idea 新版idea 4.2 Eclipse配置 打开Eclipse,菜单中选择:Window -> Preference ->…...
【MySQL】MySQL里的用户账户和角色是什么?如何管理?
用户(user)验证和授权创建用户账户连接服务器查看用户账户设置 角色(role)创建角色 操作用户帐户和角色重命名删除 感谢 💖 用户(user) 在MySQL中,用户是数据库访问的主要实体。每个…...
vbs病毒
vbs脚本:VBS脚本病毒原理分析和防范 疯狂代码 http://CrazyCoder.cn/ Sh t t p : / C r a z y C o d e r . c n / S e c u r i t y / Ar t i c l e 7 2 0 0 8 . h t m l 网络流行让我们世界变得更加美好但它也有让人不愉快时候当您收到封主题为1LoveYou” 邮件用兴奋 得几乎快发…...
用Java实现Huffman编码
文章目录 前言一、实现思路二、准备Huffman结点三、主要实现 前言 在使用http1.1协议传输数据的时候,会有一些固定的字段,比如cookie、编码方式、接收的数据类型,另外会有一些大量重复的字段造成请求报文过于冗长,为了解决这个问…...
day-04 基于UDP的服务器端/客户端
一.理解UDP (一)UDP套接字的特点 UDP套接字具有以下特点: 无连接性:UDP是一种无连接的协议,这意味着在发送数据之前,不需要在发送方和接收方之间建立连接。每个UDP数据包都是独立的,它们可以独…...
FFmpeg rtp rtp_mpegts的区别
rtp 在FFmpeg中,rtpenc是一个用于将音视频数据封装成RTP(Real-time Transport Protocol)数据包并发送到网络上的编码器。RTP是一种用于实时传输音视频数据的协议,常用于视频会议、流媒体等场景。 rtpenc可以将音视频数据封装成R…...
【链表OJ】相交链表 环形链表1
前言: 💥🎈个人主页:Dream_Chaser~ 🎈💥 ✨✨刷题专栏:http://t.csdn.cn/UlvTc ⛳⛳本篇内容:力扣上链表OJ题目 目录 一.leetcode 160. 相交链表 1.问题描述: 2.解题思路: 二.leetcode 141.环形链表 …...
DevOps之自动化测试
什么是自动化测试? 明确一下自动化测试不是什么。自动化测试不是指自动化生成测试代码,而是自动化地执行由开发人员或测试人员编写的测试代码。正如下面这句谚语:“绝不要手工去做任何可以被自动化处理的事情。——Curt Hibbs” 之前是由人…...
Java 程序打印 OpenCV 的版本
我们可以使用 Java 程序来使用 OpenCV。 OpenCV 的使用需要动态库的加载才可以。 加载动态库 到 OpenCV 的官方网站上下载最新的发布版本。 Windows 下载的是一个可执行文件,没关系,这个可执行文件是一个自解压程序。 当你运行以后会提示你进行解压。…...
ChatGPT⼊门到精通(2):ChatGPT 能为我们做什么
⼀、雇佣免费的⼲活⼩弟 有了ChatGPT后,就好⽐你有了好⼏个帮你免费打⼯的「⼩弟」,他们可以帮你做很多 ⼯作。我简单总结⼀些我⽬前使⽤过的⽐较好的基于ChatGPT的服务和应⽤。 1、总结、分析 当我们在阅读⼀些⽂章和新闻的时候,有的⽂章写…...
线程和进程的区别是什么?
线程(Thread)和进程(Process)是操作系统中两个重要的概念,用于管理程序的执行。它们有以下区别: 定义:进程:进程是程序的一个执行实例,它包含了程序的代码、数据以及执行上下文。进程是操作系统分配资源和调度的基本单位。线程:线程是进程的子执行单元,一个进程可以…...
力扣27.移除元素
27. 移除元素 提示 简单 1.9K 相关企业 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序…...
指针(个人学习笔记黑马学习)
1、指针的定义和使用 #include <iostream> using namespace std;int main() {int a 10;int* p;p &a;cout << "a的地址为:" << &a << endl;cout << "a的地址为:" << p << endl;…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...
MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例
一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...
基于Flask实现的医疗保险欺诈识别监测模型
基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...
ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...
【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分
一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...
C# 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
莫兰迪高级灰总结计划简约商务通用PPT模版
莫兰迪高级灰总结计划简约商务通用PPT模版,莫兰迪调色板清新简约工作汇报PPT模版,莫兰迪时尚风极简设计PPT模版,大学生毕业论文答辩PPT模版,莫兰迪配色总结计划简约商务通用PPT模版,莫兰迪商务汇报PPT模版,…...
Java 与 MySQL 性能优化:MySQL 慢 SQL 诊断与分析方法详解
文章目录 一、开启慢查询日志,定位耗时SQL1.1 查看慢查询日志是否开启1.2 临时开启慢查询日志1.3 永久开启慢查询日志1.4 分析慢查询日志 二、使用EXPLAIN分析SQL执行计划2.1 EXPLAIN的基本使用2.2 EXPLAIN分析案例2.3 根据EXPLAIN结果优化SQL 三、使用SHOW PROFILE…...
Java后端检查空条件查询
通过抛出运行异常:throw new RuntimeException("请输入查询条件!");BranchWarehouseServiceImpl.java // 查询试剂交易(入库/出库)记录Overridepublic List<BranchWarehouseTransactions> queryForReagent(Branch…...
Java设计模式:责任链模式
一、什么是责任链模式? 责任链模式(Chain of Responsibility Pattern) 是一种 行为型设计模式,它通过将请求沿着一条处理链传递,直到某个对象处理它为止。这种模式的核心思想是 解耦请求的发送者和接收者,…...
