当前位置: 首页 > news >正文

while循环和for循环

一、while循环

1、while 循环,只要条件为真,我们就可以执行一组语句。

2、while 循环需要预先设置索引变量,并且需要编写代码执行索引变量+1。如下:我们需要定义一个变量 i,初始值设置为 1。

i=1whilei<7:print(i)i+=1

3、while True:

whileTrue:代码块

这段代码while True:因为值固定为布尔常量true,代表“真”,因此会无限循环。

常见用途:这种无限循环通常用于那些需要持续运行、时刻待命或直到用户主动退出的程序。常见的场景包括:

  • 服务器/后台守护进程:例如 Web 服务器需要一直运行,时刻监听是否有新的客户端请求连接。
  • 交互式命令行程序:例如一个计算器程序,执行完一次计算后,不应直接关闭,而是回到主菜单等待用户下一次输入。
  • 游戏主循环:游戏程序需要不断地刷新画面、检测用户输入、更新游戏逻辑,直到玩家点击“退出游戏”。
  • 实时数据监听:例如监控传感器数据或消息队列(MQ)。

使用时,开发者必须在代码内部设计好“出口”(break 或 return)以及合理的“休息”时间(time.sleep),以保证程序的稳定性和可控性。

示例:

#coding=utf-8importtimefromdatetimeimportdatetime#每天发送的固定时间(格式:小时:分钟,比如 "09:00")FIXED_TIME=["16:00:00","17:00:00"]whileTrue:now=datetime.now().strftime("%H:%M:%S")# 对比时间,到点则发送ifnow>FIXED_TIME[0]andnow<FIXED_TIME[1]:'满足条件执行的代码'time.sleep(3600)

3、break 语句

如果使用 break 语句,即使 while 条件为真,我们也可以停止循环:

i=0whilei<7:i+=1ifi==3:breakprint(i)

输出:
1
2
3

4、continue 语句

如果使用 continue 语句,我们可以停止循环中的当前迭代,并继续下一个迭代

i=0whilei<7:i+=1ifi==3:continueprint(i)

输出:
1
2
4
5
6
7

二、for循环

1、for 循环用于迭代序列(即列表,元组,字典,集合或字符串)。通过使用 for 循环,我们可以为序列(即列表,元组,字典,集合或字符串)中的每个项目等执行一组语句。

2、for 循环不需要预先设置索引变量,索引变量自动+1。如下:

forxin"banana":print(x)

3、for循环一般和range() 函数结合使用

range() 函数默认从 0 开始,并递增 1(默认1,可以通过添加第三个参数来指定增量值,非必填),并以指定的数字结束。

语法:for i in range(start, stop, step)。参数:start 为起始值(包含),stop 为终止值(不包含),step 为递增值(默认为 1) 也即大于等于起始值,小于结束值。

fornumberinrange(1,6):print(number)

注意:for i in range()for i in的区别:

for i in后面通常跟一个可迭代对象(如列表、元组、字符串、集合、字典等),循环会依次遍历可迭代对象中的每个元素,并将元素赋值给变量 i。例如,for i in [1, 2, 3]会依次将1、2、3赋值给变量i‌

for i in range():这种形式使用range()函数生成一个整数序列,通常用于需要指定循环次数或范围的场景。range(n)生成一个从0到n-1的整数序列,range(m, n)生成一个从m到n-1的整数序列。例如,for i in range(5)会生成0、1、2、3、4,并依次赋值给变量i

也即使用场景有差异:

for i in:适用于需要遍历各种数据结构(如列表、字典等)的场景。

for i in range():适用于需要指定循环次数或范围的场景,常用于循环次数已知的情况。

4、for嵌套循环

adj=["red","big","tasty"]fruits=["apple","banana","cherry"]forxinadj:foryinfruits:print(x,y)

5、pass 语句

for 语句不能为空,如果因为某种原因写了无内容的 for 语句,可使用 pass 语句来避免错误

forxin[0,1,2]:pass

6、break 语句

通过使用 break 语句,我们可以在循环遍历所有之前停止循环

fruits=["apple","banana","cherry"]forxinfruits:ifx=="banana":breakprint(x)

输出:
apple

7、continue 语句

通过使用 continue 语句,我们可以停止循环的当前迭代,并继续下一个

fruits=["apple","banana","cherry"]forxinfruits:ifx=="banana":continueprint(x)

输出:
apple
cherry

http://www.jsqmd.com/news/446848/

相关文章:

  • 状态压缩DP
  • 2026年餐饮业选型必看:商用咖啡机厂家适配指南与核心能力实测对比 - 品牌推荐
  • 把 SQLScript 写成一条好 SQL:深入理解 SAP HANA SQLScript Optimizer 的工作机制与实战调优
  • 物联网之温湿度传感器模块、arduino、esp32
  • 树形DP的经典运用
  • AD16快速上手指南(AD16为例)
  • windows xp系统账号密码忘记解决办法
  • 【经验】VMware|百试百灵的Ubuntu虚拟机连不上网的解决办法(网络重启大法+NAT模式注意开启服务)
  • 把 SQL Trace 用到极致:在 SAP HANA 与 HANA Cloud 中追踪 SQLScript 内部语句,精准定位性能瓶颈
  • 第3天-Jenkins详解-3
  • 利用CAM350快速完成拼板
  • Web前端之浏览器本地存储、框架存储、SessionStorage、LocalStorage、lndexedDB、Cookies、WebSQL、vueX
  • Web前端之IndexedDB浏览器本地存储介绍、数据库、缓存
  • Web前端之UniApp、Taro、ReactNative和Flutter的区别
  • 《K8S集群运维指南》
  • 关于 SAP S/4HANA 公有云里的 multi-off 交付
  • 服务端之NestJS接口响应message编写规范详解、写给前后端都舒服的接口、API提示信息标准化
  • 基于GX Works2的ST语言介绍
  • 用对 CS_ / RS_:看懂 SAP HANA 执行引擎选择,写出更稳更快的 SQL
  • puzzle(0712)Lazors、折射之光
  • 【有趣项目 Windows】浏览器使用技巧:chrome数据数据设置+实现浏览器双开、多开
  • 蓝桥杯嵌入式(STM32G431RBT6)入门第四天——系统嘀嗒定时器(SysTick)|CSDN创作打卡
  • Web前端之Sass中的颜色函数、active按钮激活、disabled禁用、hover鼠标悬浮、Style循环、Css
  • 海康威视网络摄像头配置本地存储服务器进行录像和查看!(需要有老版本存储服务器软件和4200老版本搭配使用,官网没有了)
  • VisualStudioCode之各种配置介绍、终端不能运行yarn脚本、自动添加或补全双引号、文件头部的注释说明、保存时禁止格式化、重新加载窗口
  • 【KEIL】【JLINK】KEIL如何进行远程调试
  • 2026年商用咖啡机厂家深度测评:基于全链路能力与创新实效的四维战力解析 - 品牌推荐
  • 2026年商用咖啡机厂家权威榜单发布:五大品牌技术实力与服务网络深度排位赛 - 品牌推荐
  • 蓝桥杯嵌入式(STM32G431RBT6)入门第三天——使用按键(KEY)|CSDN创作打卡
  • ARM-MPU内存保护单元详解