提升代码逻辑的感觉——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;…...
Python爬虫实战:研究MechanicalSoup库相关技术
一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

Linux应用开发之网络套接字编程(实例篇)
服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

华为云AI开发平台ModelArts
华为云ModelArts:重塑AI开发流程的“智能引擎”与“创新加速器”! 在人工智能浪潮席卷全球的2025年,企业拥抱AI的意愿空前高涨,但技术门槛高、流程复杂、资源投入巨大的现实,却让许多创新构想止步于实验室。数据科学家…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

大话软工笔记—需求分析概述
需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...

【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...

汽车生产虚拟实训中的技能提升与生产优化
在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...

让AI看见世界:MCP协议与服务器的工作原理
让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...