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
猜你喜欢
- 本文实例为大家分享了python实现12306图片验证效果的具体代码,供大家参考,具体内容如下思路:在鼠标点击位置加一个按钮,然后再按钮中的
- 1.相关基础python3中有两种字符串类型:str和bytespython编码问题可以参考文章str以unicode编码格式保存在内存所以
- 首先确保装了Python,我装的是2.x版本,对了,我的操作系统是WIN7,其实对于Python来说,什么操作系统并不重要。Python内置
- 深度学习网络通常具有很深的层次结构,而且层与层之间通常会有并联、串联等连接方式。当使用PyTorch建立一个深度学习网络并输出文本向读者展示
- 导语提到《俄罗斯方块》(Tetris),那真是几乎无人不知无人不晓。其历史之悠久,可玩性之持久,能手轻轻一挥,吊打一 * 游戏。对于绝大多数小
- 简单的设计思路利用pytest对一个接口进行各种场景测试并且断言验证配置文件独立开来(conf文件),实现不同环境下只需要改环境配置即可测试
- 本文结合其他博主的一些介绍总结了dot函数运算过程基本简介dot函数为numpy库下的一个函数,主要用于矩阵的乘法运算,其中包括:向量内积、
- 我们曾经提到,Oyster.com的Python web服务器怎样利用一个巨大的Python dicts(hash table),缓存大量的
- 1、获取对象类型,基本类型可以用type()来判断。>>> type(123)<class 'int'
- 1:构图图形的层次感图形和元素之间的层次感,可以在干扰视觉的同时,突出自身所想体现的主题,这种表现方式往往是比较直接而且有效的方式。我们所说
- 一、rsa库(推荐)1、公钥加密、私钥解密# -*- coding: utf-8 -*-import rsa# rsa加密def rsaEn
- Python作为一种脚本语言,其要求强制缩进,使其易读、美观,它的数据类型可以实现自动转换,而不需要像C、Java那样给变量定义数据类型,使
- 该脚本是为了结合之前的编写的脚本,来实现数据的比对模块,实现数据的自动化!由于数据格式是定死的,该代码只做参考,有什么问题可以私信我!CSV
- 每个PHP脚本都限制了执行时间,所以我们需要通过 set_time_limit 来设置一个脚本的执行时间为无限长;然后使用 flush()
- 自己在学习过程中也遇到了类似的问题:比如,后台是想做成这样子的:但是实际则是这样的:解决方法:通过隐藏表单控件<input type=
- 给定一篇英语文章,要求统计出所有单词的个数,并按一定次序输出。思路是利用go语言的map类型,以每个单词作为关键字存储数量信息,代码实现如下
- “表情包”是当前社交软件上不可或缺的交流方式,难以用文字表达的意思,发一个“表情包”,对方就能心领神会。下面是小派制作的一个表情包,准确地讲
- 今天在网上找了一下Microsoft Enterprise Library 5.0 如何集成MySQL数据库, 结果只找到了entlib 4
- 环境:xadmin-for-python3 python3.5.2 django1.9.12问题描述:Product ProductSku两
- 我就废话不多说了,大家还是直接看代码吧~import tensorflow as tfimport syswith tf.variable_