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

python-while循环

文章目录

  • 1、基本用法
  • 2、简单示例
  • 3、重要特性
  • 控制语句
    • break
    • contiue
  • else子句细节
    • 关键区别总结
    • 典型用途
    • 结论

while 循环是 Python 中的一种基本循环结构,它会在条件为真时重复执行代码块。

1、基本用法

while 条件表达式:# 循环体代码

2、简单示例

count = 0
while count < 5:print(f"当前计数: {count}")count += 1

输出结果:

当前计数: 0
当前计数: 1
当前计数: 2
当前计数: 3
当前计数: 4

3、重要特性

1、条件检查:每次循环开始前都会检查条件

2、无限循环:如果条件永远为真,循环将无限执行

while True:print("这是一个无限循环")

3、else 子句:while 循环可以有一个可选的 else 块,当条件变为假时执行

count = 0
while count < 3:print(count)count += 1
else:print("循环结束")

控制语句

break

立即退出整个循环

while True:user_input = input("输入 'exit' 退出: ")if user_input == 'exit':break

contiue

跳过当前迭代,进入下一次循环

num = 0
while num < 5:num += 1if num == 3:continueprint(num)

else子句细节

在 Python 的 while 循环中,else 语句和直接在循环结束后执行的语句 看起来效果类似,但有一个关键区别。

  1. while-else 的执行条件
    1.1 else 块 仅在循环正常结束时执行(即 while 条件变为 False 时)。
    1.2 如果循环被 break 语句提前终止,else 块 不会执行。

示例 1:循环正常结束(执行 else)

count = 0
while count < 3:print(count)count += 1
else:print("循环正常结束")

输出:

0
1
2
循环正常结束

示例 2:循环被 break 终止(不执行 else)

count = 0
while count < 3:if count == 1:break  # 提前退出print(count)count += 1
else:print("循环正常结束")  # 不会执行

输出:

0

(else 不执行,因为 break 提前终止了循环)
2. 直接在 while 循环后写语句
2.1 无论循环是否 break,都会执行(除非程序异常终止)。
2.2 相当于 finally 的效果,总是运行。

count = 0
while count < 3:if count == 1:breakprint(count)count += 1
print("循环结束(无论是否 break)")  # 总是执行

输出:

0
循环结束(无论是否 break)

(即使 break 了,后面的 print 仍然执行)

关键区别总结

情况while-else直接写在 while 后
循环正常结束(条件变 False)✅ 执行✅ 执行
循环被 break 终止❌ 不执行✅ 执行
适用场景检查循环是否完整执行无论是否 break 都执行

典型用途

while-else:适合检查循环是否完整完成(如搜索时未找到目标):

found = False
while items:item = items.pop()if item == target:found = Truebreak
else:print("未找到目标")  # 仅当循环完整执行(未 break)时运行

直接写语句:适用于无论如何都要执行的代码(如清理资源):

while condition:# do somethingif error:break
cleanup()  # 无论是否 break,都要执行

结论

1、如果你希望代码 仅在循环完整执行时运行,用 while-else。

2、如果你希望代码 无论是否 break 都运行,直接写在 while 后面。

http://www.lryc.cn/news/586315.html

相关文章:

  • 从0到1搭建个人技术博客:用GitHub Pages+Hexo实现
  • Win11怎样进入WinRE恢复环境
  • 批量自动运行多个 Jupyter Notebook 文件的方法!!!
  • Linux中Gitee的使用
  • AMD 锐龙 AI MAX+ 395 处理器与端侧 AI 部署的行业实践
  • Ruby如何采集直播数据源地址
  • QILSTE/旗光 H4-105B2W/5M全解析
  • 【6.1.1 漫画分库分表】
  • IDEA中一个服务创建多个实例
  • 李宏毅(Deep Learning)--(三)
  • Git企业级开发(多人协作)
  • 网络编程员工管理系统
  • 商业机密保卫战:如何让离职员工带不走的客户资源?
  • 独立开发第二周:构建、执行、规划
  • 手把手教你用YOLOv10打造智能垃圾检测系统
  • 从OpenMV到执行器:当PID算法开始“调教”舵机
  • 微服务环境下的灰度发布与金丝雀发布实战经验分享
  • 数据分析库 Pandas
  • 【离线数仓项目】——电商域DWD层开发实战
  • AI之DL之VisualizationTool:ai-by-hand-excel的简介、安装和使用方法、案例应用之详细攻略
  • 用 Python 将分组文本转为 Excel:以四级词汇为例的实战解析
  • Ether and Wei
  • 实用技巧 Excel 与 XML互转
  • Python ExcelWriter详解:从基础到高级的完整指南
  • Flink创建执行环境的三种方式,也是Flink搭建程序的第一步
  • Python数据容器-集合set
  • 学习笔记 Datewhale MCP Server Task2
  • 【Redis实战】Widnows本地模拟Redis集群的2种方法
  • 【嵌入式】51单片机学习笔记-Keil5软件安装教程
  • 启动Haproxy失败,如何排查问题