python的while循环与for循环总结

前两章中,我们跟着海绵宝宝的故事,掌握了 while 循环和 for 循环,这两种不同的循环模式。while 循环和 for 循环都需要有 循环体 和 缩进,我们来复习一下它俩的语法规则:

while 循环与 for 循环辨析

学到这里,对于 while 循环与 for 循环要怎么用,你已经相当熟悉啦,它们都能满足将某件事重复多次的需求。下面这两段代码都能将“美味蟹黄堡”打印 3 遍,只是 for 循环代码要更简洁:

# while 循环
i = 0
while i < 3:print('美味蟹黄堡')i += 1  # 还记得 i += 1 是 i = i + 1 的缩写吗?# for 循环
for i in range(3):print('美味蟹黄堡')

这么一看,while 循环和 for 循环的功能似乎没有差异呀?那 Python 中何必还要有两种不同的循环语句呢?

要回答这个问题,首先要理清楚两种循环的不同之处,二者最大的区别在于 循环次数是否确定,我们结合两种循环的终止条件来理解一下。

先来看 for 循环。for 循环的执行逻辑很好理解,遍历序列,遍历结束后循环终止。所以说,for 循环的循环次数是确定的,序列中有多少个元素,循环就执行多少次:

# 循环次数确定
names = ['海绵宝宝', '派大星', '泡芙老师', '珊迪', '蟹老板']
for i in names:print(i)

而 while 循环是在条件不满足时终止循环,我们不需要给出一个确定的循环次数。所以,如果你也不确定要让 Python 把某件事重复多少遍,那用 while 循环就刚好合适:

# 循环次数不确定
name = ''
while name != '海绵宝宝':name = input('猜猜我是谁?')

大多数情况下,两种循环是通用的,但像上面这个例子一样的猜名字、猜数字问题,只能通过 while 循环来实现。

总结一下,while 循环和 for 循环有着完全不同的循环模式。写 for 循环时,我们无需额外去思考循环的终止条件,只需要提供待遍历的数据;写 while 循环则不一样,无需关心循环的执行次数,只需要提供清晰有效的循环条件。

两种循环在大多数情况下通用,但各自的特点决定了它们更适合用来解决两类不同的循环问题:

编程练习

仿照课程中的例子,我们给海绵宝宝写一个工作提醒器吧。要求:

  • 询问是否下班了,并使用变量 answer 获取用户输入;
  • 如果用户输入的不是 下班了,就重复打印 小海绵努力工作中……,并再次询问是否下班了。
  • 如果输入的是 下班了,就结束循环,并打印 回家找小蜗啦

想想看,哪种循环适合解决这个问题呢?🤔

answer = input('下班了吗?输入下班了/没下班')
working = '小海绵努力工作中……'
go_home = '回家找小蜗啦'

因为前面几章的练习,都是一些固定参数的循环,到这反而有点不习惯了,但是自己观察就会发现,其实逻辑上还是一样的,知识多了一个 input()

answer = input('下班了吗?输入下班了/没下班')
working = '小海绵努力工作中……'
go_home = '回家找小蜗啦'while answer != '下班了':print(working)answer = input('下班了吗?输入下班了/没下班')print(go_home)

两位循环魔法师各有所长,有了他们的加入,蟹黄堡产能大爆发,到店的客人络绎不绝,连食材供应都跟不上了。

大 Boss 蟹老板嘱咐海绵宝宝,一定要做好食材管理,如果仓库里的食材已经不够了,那无论是否还有客人等待,都停止做蟹黄堡。

新需求来了!我们不仅要告诉 Python 循环在何时执行,还要在某个时刻强制终止循环。一切的一切,都需要我们对循环进行更精细的控制。

下面一篇文章就让我来带你认识两种常用的 循环控制语句(break与continue)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/21867.shtml

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

相关文章

Microsoft Edge TTS引擎实现文字转语音小工具

Microsoft Edge TTS引擎实现文字转语音小工具 ​ 看了一篇文章关于使用Microsoft Edge TTS引擎进行文本转语音的介绍。正好单位工作上经常用到音视频的制作和转换。但是文字变成音频一直都是播音员口播实现。现在到了AI时代,各种功能强大的AI大模型已经应用到各个领域,大大提…

Docker镜像导入导出

Docker镜像导入导出 相关命令 docker export 容器id > x:/xx/xx.tar ##导出容器快照 docker import - x:/xx/xx.tar ##导入容器快照 docker save 镜像id > x:/xx/xx.tar ##导出镜像 docker load < x:/xx/xx.tar ##导入镜像命令详解 docker save …

在鲲鹏服务器搭建k8s高可用集群分享

高可用架构 本文采用kubeadm方式搭建k8s高可用集群&#xff0c;k8s高可用集群主要是对apiserver、etcd、controller-manager、scheduler做的高可用&#xff1b;高可用形式只要是为&#xff1a; 1. apiserver利用haproxykeepalived做的负载&#xff0c;多apiserver节点同时工作…

nginx反向代理了解

文章目录 Nginx反向代理反向代理系统调优Proxy Buffer相关指令 Nginx 具有高性能的http和反向代理的web服务器&#xff0c;同时也是一个pop3/smtp/imap代理服务器&#xff0c;使用c语言编写 **Web服务器&#xff1a;**也叫网页服务器&#xff0c;web server&#xff0c;主要功…

易联众智慧云胶片平台,助推医学影像服务“向云端”

在门诊室里,张女士焦急地告诉主治医师,自己忘了带CT胶片。“您别急,我用系统查询一下。”医生轻点几下鼠标进入云胶片平台,只用不到10秒就顺利完成了影像调取。“不仅我可以看到,您在手机上也能随时随地查阅。”张女士根据提示操作,不仅能调阅自己的影像档案,连抽血化验结果都可…

Spring MVC 启动流程?

在 web.xml 文件中给 Spring MVC 的 Servlet 配置了 load-on-startup&#xff0c;所以程序启动的时候会初始化 Spring MVC&#xff0c;在 HttpServletBean 中将配置的 contextConfigLocation属性设置到 Servlet 中&#xff0c;然后在FrameworkServlet 中创建了 WebApplicationC…

[GeoServer系列]Shapefile数据发布

【GeoServer系列】——安装与发布shapefile数据-CSDN博客 将待发布数据放置指定目录下 webapps\geoserver\data\data 创建存储仓库 新建矢量数据源 发布图层 设置边框 设置样式 使用 方式1 let highRoad new Cesium.WebMapServiceImageryProvider({url: http://local…

blender从视频中动作捕捉,绑定到人物模型

总共分为3个步骤&#xff1a; 1、从视频中捕捉动作模型 小K动画网-AIGC视频动捕平台 地址&#xff1a;https://xk.yunbovtb.com/ 需要注册 生成的FBX文件&#xff0c;不能直接导入到blender中&#xff0c; 方法有2种&#xff1a; 第一种&#xff1a;需要转换一下&#x…

Spring Cloud学习笔记(Nacos):Nacos持久化(未完成)

这是本人学习的总结&#xff0c;主要学习资料如下 - 马士兵教育 1、Overview2、单机使用MySQL 1、Overview 我们关闭单机下的Nacos后&#xff0c;再重新启动会发现之前配置的内容没有被删除。这时因为Nacos有内嵌的数据库derby&#xff0c;会自己持久化。 但是在集群的情况下…

QT6.0以上版本实现实时图像传输

目录 服务端开启摄像头&#xff0c;捕获存储图片TCP图像传输延时函数 客户端建立连接接收数据和处理缓冲区接收的一些想法 QT借助tcp实现图像传输&#xff0c;达到类似实时监控的目的。 QT到6.0以上后貌似原来的5.0的一些图像的捕获的函数都无法使用了&#xff0c;网上好像也没…

KAN(Kolmogorov-Arnold Network)的理解 3

系列文章目录 第一部分 KAN的理解——数学背景 第二部分 KAN的理解——网络结构 第三部分 KAN的实践——第一个例程 文章目录 系列文章目录前言KAN 的第一个例程 get started 前言 这里记录我对于KAN的探索过程&#xff0c;每次会尝试理解解释一部分问题。欢迎大家和我一起讨…

百度/迅雷/夸克,网盘免费加速,已破!

哈喽&#xff0c;各位小伙伴们好&#xff0c;我是给大家带来各类黑科技与前沿资讯的小武。 之前给大家安利了百度网盘及迅雷的加速方法&#xff0c;详细方法及获取参考之前文章&#xff1a; 刚刚&#xff01;度盘、某雷已破&#xff01;速度50M/s&#xff01; 本次主要介绍夸…

Python sorted 用法:深入解析排序函数的奥秘

Python sorted 用法&#xff1a;深入解析排序函数的奥秘 在Python编程中&#xff0c;sorted函数是一个强大的工具&#xff0c;用于对可迭代对象进行排序。然而&#xff0c;它的用法和功能远不止表面看起来那么简单。本文将深入剖析sorted函数的四个方面、五个方面、六个方面和…

simulink基础学习笔记

写在前面 这个笔记是看B站UP 快乐的宇航boy 所出的simulink基础教程系列视频过程中记下来的&#xff0c;写的很粗糙不完整&#xff0c;也不会补。视频教程很细跟着做就行。 lesson1-7节的笔记up有&#xff0c;可以加up的群&#xff0c;里面大佬挺活跃的。 lesson8 for循环 For …

【C++初阶学习】第十二弹——stack和queue的介绍和使用

C语言栈&#xff1a;数据结构——栈(C语言版)-CSDN博客 C语言队列&#xff1a;数据结构——队列&#xff08;C语言版&#xff09;-CSDN博客 前言&#xff1a; 在之前学习C语言的时候&#xff0c;我们已经学习过栈与队列&#xff0c;并学习过如何使用C语言来实现栈与队列&…

Python | 平均绩点

字符串的概念和特点 字符串既可以使用单引号&#xff0c;也可以使用双引号""来创建 可以使用运算符来拼接字符串&#xff0c;并返回字符串拼接后的结果。 first_name "Tom" last_name "Jerry" full_name first_name " " &quo…

OCR图片转Excel表格:没结构化的弊端

随着OCR技术的不断发展&#xff0c;将表格图片转为excel已不再是难题&#xff0c;但是&#xff0c;目前市面上的程序还大多处于仅能将图片表格转为普通的excel格式阶段&#xff0c;而不能将其结构化&#xff0c;这样就会产生许多的弊端&#xff0c;具体弊端如下&#xff1a; &l…

数据容器的通用操作、字符串大小比较 总结完毕!

1.数据容器的通用操作 1&#xff09;五类数据容器是否都支持while循环/for循环 五类数据容器都支持for循环遍历 列表、元组、字符串都支持while循环&#xff0c;集合、字典不支持&#xff08;无法下标索引&#xff09; 尽管遍历的形式不同&#xff0c;但都支持遍历操作 2&a…

办公软件 Office 安装教程(亲测有效)

Office 现已更名为 Microsoft 365。习惯还是称作 Office。 1、Office 套装下载 Windows 的样子 这里下载的是最新版本的 O365ProPlus 安装完成后&#xff0c;点击关闭&#xff08;请先不要打开&#xff09;。 Mac 的样子 这里下载的是Office for Mac 2019&#xff08;更多版…

QNAP的jellyfin无法使用TMDB刮削的问题

解决方法很简单&#xff0c;修改QNAP的HOSTS文件 使用DNS Checker工具查询对应IP&#xff1a; image.tmdb.org api.themoviedb.org www.themoviedb.org 打开hosts文件&#xff0c;添加下列内容&#xff0c;wq保存 [~] # vi /etc/hosts 169.150.249.166 image.tmdb.org 103.2…