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,一经查实,立即删除!

相关文章

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

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

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

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

[GeoServer系列]Shapefile数据发布

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

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

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

KAN(Kolmogorov-Arnold Network)的理解 3

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

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

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

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语言来实现栈与队列&…

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;更多版…

速递FineWeb:一个拥有无限潜力的15T Tokens的开源数据集

大模型技术论文不断&#xff0c;每个月总会新增上千篇。本专栏精选论文重点解读&#xff0c;主题还是围绕着行业实践和工程量产。若在某个环节出现卡点&#xff0c;可以回到大模型必备腔调或者LLM背后的基础模型新阅读。而最新科技&#xff08;Mamba,xLSTM,KAN&#xff09;则提…

内核宕机自救

【问题】在测试内核级防篡改时&#xff0c;偶尔会遇到内核宕机的问题 【结论】进入紧急救援模式&#xff0c;将服务进程文件的start注释掉&#xff0c;即可 在Linux系统启动时&#xff0c;内核启动顺序选择界面&#xff0c;进入系统欢迎界面按上下左右键进入GRUB界面&#xff…

欧佩克+同意集体性减产延长,油价能否稳住?

KlipC报道&#xff1a;欧佩克组织同意将延长目前部分减产协议至2025年&#xff0c;以支撑油价。主要成员国把2023年11月宣布的日均220万桶的自愿减产措施延长至今年9月底&#xff0c;将在10月份根据市场情况开始缩减自愿减产规模。 高盛分析师表示&#xff0c;“我们认为这次欧…

python常见数据分析函数

apply DataFrame.apply(func, axis0, broadcastFalse, rawFalse, reduceNone, args(), **kwds) 第一个参数是函数 可以在Series或DataFrame上执行一个函数 支持对行、列或单个值进行处理 import numpy as np import pandas as pdf lambda x: x.max()-x.min()df pd.DataFrame(…

高端、大气、很牛B的免费wordpress模板主题

这是一款专为WordPress打造的极简主义风格主题&#xff0c;以白色和黑色为主色调&#xff0c;搭配红色点缀&#xff0c;营造出一种简洁、专业且具有视觉冲击力的效果。 该主题的设计理念是“简单即美”&#xff0c;旨在帮助用户快速搭建一个美观、易用的网站。它提供了丰富的自…

动态sql set标签 , trim标签

set标签 来看例子 set标案解决了逗号问题(当if条件不满足时,逗号无处安放的问题),我认为set标签可以识别这个问题,并自动忽略这个问题 <update id"update">update employee<set><if test"name!null">name#{name},</if><if te…

HTML基本元素包含HTML表单验证

可将以下代码复制另存为一个HTML文件浏览器打开自己去看看实际使用效果 <!DOCTYPE html> <html> <head> <meta charset"utf-8"><title>测试</title> </head> <body> <h1>很多事</h1> <h1><b&…

四、利用启发式算法进行特定数据集的残差网络结构搜索【框架+源码】

背景&#xff1a;工作之后干的事情跟算法关联甚少&#xff0c;整理下读书期间的负责和参与的work&#xff0c;再熟悉学习下。 边熟悉边整理喽~ CV Tradictional workCV AI based work机械臂视觉抓取项目机器学习全流程 Pipeline训练平台OCR生产线喷码识别三维重建(SfM)ROS机器人…

C++的vector使用优化

我们在上一章说了如何使用这个vector动态数组&#xff0c;这章我们说说如何更好的使用它以及它是如何工作的。当你创建一个vector&#xff0c;然后使用push_back添加元素&#xff0c;当当前的vector的内存不够时&#xff0c;会从内存中的旧位置复制到内存中的新位置&#xff0c…