Python开发常用五种循环方式的场景性能比较
作者:Python 发布时间:2021-11-19 13:24:00
Python是一门高级编程语言,其拥有多种循环方式,如for循环、while循环、do-while循环等。
在编写程序时,需要根据不同的场景和效率要求选择合适的循环方式。
下面将逐个分析Python所有的循环执行效率和适用场景。
1.for 循环
for循环通常用于遍历序列(如列表、元组、字符串)或其他可迭代对象,效率较高。
for循环的执行时间与序列长度成正比,因此在处理较大的数据集时,for循环的效率较高。
例如,遍历一个包含100万个元素的列表,for循环的执行时间仅需几秒钟。
for循环的基本语法为:
for value in sequence:
statement(s)
其中,value为序列中的每一个元素,sequence为需要遍历的序列,statement(s)为循环体中需要执行的语句。
for循环适用于需要遍历序列或其他可迭代对象的场景,例如:
遍历列表、元组、字符串等序列;
遍历字典、集合等其他可迭代对象;
遍历文件中的每一行数据;
遍历网络数据等。
2.while 循环
while循环适用于需要反复执行某个操作,但不知道具体执行次数的场景。
while循环的执行效率与循环次数有关,因此在循环次数较少的情况下,while循环的效率比较高。
但是,如果循环次数太多,会导致性能下降。
while循环的基本语法为:
while condition:
statement(s)
其中,condition为循环条件,statement(s)为循环体中需要执行的语句。
while循环适用于需要反复执行某个操作,但不知道具体执行次数的场景,例如:
读取用户输入,直到输入正确为止;
模拟游戏等需要不断循环的场景;
处理需要反复执行的任务等。
需要注意的是,如果循环条件一直为True,会导致无限循环,因此需要在循环体中加入break语句来跳出循环。
3.do-while 循环
do-while循环是Python中没有原生支持的循环方式,但可以通过while循环和break语句来实现。
do-while循环适用于需要至少执行一次循环的场景。
do-while循环的执行效率与while循环类似,取决于循环次数。
do-while循环的基本语法为:
while True:
statement(s)
if not condition:
break
其中,True表示循环至少执行一次,statement(s)为循环体中需要执行的语句,condition为循环条件。
do-while循环适用于需要至少执行一次循环的场景,例如:
读取文件中的数据,并对数据进行处理;
处理需要至少执行一次的任务等。
需要注意的是,在循环体中需要加入break语句来跳出循环。
4.for-else 循环
for-else循环在Python中也是比较常用的一种循环方式,它可以在for循环结束后执行一些额外的代码。
for-else循环的执行效率与for循环类似,取决于序列的长度。
for-else循环的基本语法为:
for value in sequence:
statement(s)
else:
statement(s)
其中,value为序列中的每一个元素,sequence为需要遍历的序列,statement(s)为循环体中需要执行的语句。
for-else循环适用于在for循环结束后需要执行一些额外的代码的场景,例如:
遍历完列表后对数据进行汇总、统计等操作;
遍历完文件中的数据后关闭文件等。
需要注意的是,只有当for循环正常结束时,才会执行else语句中的代码。
如果在for循环中使用了break语句跳出循环,则不会执行else语句中的代码。
5.while-else 循环
while-else循环与for-else循环类似,也是用来在循环结束后执行一些额外的代码的。
while-else循环的执行效率与while循环类似,取决于循环次数。
while-else循环的基本语法为:
while condition:
statement(s)
else:
statement(s)
其中,condition为循环条件,statement(s)为循环体中需要执行的语句。
while-else循环适用于在while循环结束后需要执行一些额外的代码的场景,例如:
处理需要反复执行的任务,直到任务完成;
处理需要不断重试的任务,直到任务成功为止。
需要注意的是,只有当while循环正常结束时,才会执行else语句中的代码。
如果在while循环中使用了break语句跳出循环,则不会执行else语句中的代码。
综上所述,不同的循环方式适用于不同的场景和效率要求。在编程时,需要根据具体的需求选择适当的循环方式。
如果需要遍历一个序列,应该使用for循环;如果需要反复执行某个操作,但不知道具体执行次数,可以使用while循环;
如果需要至少执行一次循环,可以使用do-while循环(通过while循环和break语句实现);
如果需要在循环结束后执行一些额外的代码,可以使用for-else循环或while-else循环。
来源:https://mp.weixin.qq.com/s/RGKSSd6oyA8ATOlFjVoJcA


猜你喜欢
- 两张表 组织架构表(Organise) 和 工资发放历史记录表 (WagePerMonthHis) 两张表通过 Organise.Item_
- 前言推导式是从一个或者多个迭代器快速创建序列的一种方法。它可以将循环和条件判断结合,从而避免冗长的代码。推导式是典型的 Python 风格P
- python中不存在所谓的传值调用,一切传递的都是对象的引用,也可以认为是传址。一、可变对象和不可变对象Python在heap中分配的对象分
- 引子: 今天看到别人的一个题目: function fn(x){ x = 10; arguments[0] = 20; console.lo
- 本文实例讲述了Python实现pdf文档转txt的方法。分享给大家供大家参考,具体如下:首先,这是一个比较粗糙的版本,因为已经够用了,而且对
- 写出来的效果图就是这样了:下面就更新一下全部的代码吧还是老样子先定义import pygame,sysimport ra
- 文件的存储方式在计算机中,文件是以 二进制的方式保存在磁盘上的文本文件和二进制文件文本文件可以使用文本编辑软件查看本质上还是二进制文件二进制
- 在中文网页中最常见的网页编码就是GB2312和UTF-8了,本文介绍了ASP实现GB2312编码转换为UTF-8编码的函数:Function
- 一、软件下载MySQL下载安装:官网下载地址:https://www.mysql.com/或者本地下载二、安装须知如果是安装过该软件的卸载重
- SQLServer中有五种约束,Primary Key约束、Foreign Key约束、Unique约束、Default约束和Check约束
- 效果演示开发工具Python版本: 3.6.4相关模块:pygame模块;PyQt5模块;以及一些Python自带的模块。环境搭建安装Pyt
- 最近做了一个项目其中有项目需求涉及到访问控制,在访问需要登录才能使用的页面或功能时,会弹出登录框:效果如下: 图 1-点击用户名时,如未登录
- 第一次使用python写程序,确实比C/C++之类方便许多。既然这个抽奖的数据不大,对效率要求并不高,所以采用python写,更加简洁、清晰
- python装饰器就是用于扩展原函数功能的一种函数,这个函数特殊的地方就是它的返回值也是一个函数,使用Python装饰器的一个好处就是:在不
- 本文实例讲述了Python决策树和随机森林算法。分享给大家供大家参考,具体如下:决策树和随机森林都是常用的分类算法,它们的判断逻辑和人的思维
- 问题环境依赖OS: CentOS 7.2 Python 3.5问题提出在运行一个Python程序之时,在调用sqlite之时,碰到如下的错误
- 当遇到一个模板标签(template tag)时,模板解析器就会把标签包含的内容,以及模板解析器自己作为参数调用一个python函数。 这个
- 最近开始使用Go/GoLand 在import 自定义包时出现各种状况,措手不及,大概在网上找了解决方法,几乎没说的清楚的(可能是我个人理解
- 在查询语句中使用 NOLOCK 和 READPAST 处理一个数据库死锁的异常时候,其中一个建议就是使用 NOLOCK 或者 READPAS
- 去年自己写过一个程序时,不太确定自己的内存使用量,就想找写工具来打印程序或函数的内存使用量。这里将上次找到的2个内存检测工具的基本用法记录一