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

python-for循环

文章目录

  • 基本语法
  • 重要特性
  • 控制语句
  • 遍历字典
  • 嵌套循环
  • enumerate()函数
  • 列表推导式
  • else子句
    • 基本语法
    • 工作原理
    • 使用示例
    • 注意事项
  • 注意事项
  • 与while循环的区别

for 循环是 Python 中另一种重要的循环结构,主要用于遍历序列(如列表、元组、字符串)或其他可迭代对象。

基本语法

for 变量 in 可迭代对象:# 循环体代码

简单示例:

fruits = ['apple', 'banana', 'cherry']
for fruit in fruits:print(fruit)

重要特性

1、遍历序列:可以遍历任何可迭代对象(列表、元组、字符串、字典、集合等)
2、range()函数:常用于生成数字序列

for i in range(5):  # 0到4print(i)

3、else子句:for循环也可以有else块,在循环正常结束后执行

for i in range(3):print(i)
else:print("循环结束")

控制语句

1、break:立即退出整个循环

for letter in 'Python':if letter == 'h':breakprint(letter)

2、continue:跳过当前迭代,进入下一次循环

for num in range(5):if num == 3:continueprint(num)

遍历字典

person = {'name': 'Alice', 'age': 25, 'city': 'New York'}# 遍历键
for key in person:print(key)# 遍历键值对
for key, value in person.items():print(f"{key}: {value}")

嵌套循环

for i in range(3):for j in range(2):print(f"i={i}, j={j}")

enumerate()函数

获取元素的值和索引。

fruits = ['apple', 'banana', 'cherry']
for index, fruit in enumerate(fruits):print(f"索引 {index}: {fruit}")

列表推导式

for循环的简洁写法:

squares = [x**2 for x in range(10)]

else子句

在 Python 中,for 循环可以有一个可选的 else 子句,这是一个不太常见但很有用的特性。这种结构可以避免使用标志变量来跟踪循环是否被中断,使代码更加简洁。

基本语法

for item in iterable:# 循环体if condition:break
else:# 当循环没有被 break 终止时执行的代码

工作原理

1、else 子句中的代码只有在循环正常完成(即没有被 break 语句中断)时才会执行

2、如果循环被 break 终止,else 部分将被跳过

使用示例

  1. 搜索元素时使用
numbers = [1, 3, 5, 7, 9]
search_for = 4for num in numbers:if num == search_for:print("找到了")break
else:print("没找到")  # 会执行这行
  1. 检查质数
n = 11
for i in range(2, n):if n % i == 0:print(f"{n} 不是质数")break
else:print(f"{n} 是质数")  # 会执行这行
  1. 遍历文件行
with open('data.txt') as f:for line in f:if line.strip() == 'target':print("找到目标行")breakelse:print("没有找到目标行")

注意事项

else 子句与 for 循环对齐,不是与 if 语句对齐

注意事项

1、避免在循环中修改正在遍历的序列

2、for循环比while循环更适合已知迭代次数的情况

3、Python的for循环实际上是foreach循环(遍历可迭代对象)

与while循环的区别

特性for循环while循环
使用场景已知迭代次数/遍历序列条件控制循环
初始化自动处理需要手动初始化
终止条件遍历完序列自动结束需要条件变为False
修改循环变量自动更新需要手动更新

for循环通常更简洁,特别是在遍历序列时,而while循环更适合不确定循环次数的情况。

http://www.dtcms.com/a/275455.html

相关文章:

  • 【Elasticsearch】昂贵算法与廉价算法
  • UI前端大数据可视化实战策略分享:如何设计符合用户认知的数据可视化流程?
  • 让 VSCode 调试器像 PyCharm 一样显示 Tensor Shape、变量形状、变量长度、维度信息
  • 「日拱一码」025 机器学习——评价指标
  • Android音视频探索之旅 | C++层使用OpenGL ES实现音频渲染
  • 单片机学习笔记.根据芯片数据手册写驱动程序(这里使用的是普中开发版,以DS1302为例)
  • 创建Spring Boot项目
  • 解决‘vue‘ 不是内部或外部命令,也不是可运行的程序
  • 前端开发的「设计鸿沟」:为什么我学了CSS却做不出好看的网页?
  • 用YOLOv5系列教程(1)-用YOLOv5轻松实现设备状态智能监控!工业级教程来了
  • 【工具】什么软件识别重复数字?
  • C++结构体的定义与使用
  • 机器学习(ML)、深度学习(DL)、强化学习(RL)关系和区别
  • Redis 基本操作笔记
  • 关于wpf的自适应
  • 基于 Redisson 实现分布式系统下的接口限流
  • [特殊字符] 深入掌握 dsquery:Active Directory 高效查询与安全运维指南
  • sqli-labs靶场通关笔记:第7-8关 布尔盲注
  • Gemini CLI 代理问题解决[API Error: exception TypeError: fetch failed sending request]
  • 【Linux-云原生-笔记】数据库操作基础
  • 【机器学习|学习笔记】详解决策树CART算法,并对比ID3 C4.5和CART算法
  • 系统分析师-计算机系统-计算机系统概述存储系统
  • 内网穿透系列九:开源的网络穿透与组网工具 EasyTier,支持多种数据传输通道,去中心化,兼具高效与安全
  • 【Java八股文总结 — 包学会】(二)计算机网络
  • PyTorch的计算图是什么?为什么绘图前要detach?
  • 【设计模式】单例模式 饿汉式单例与懒汉式单例
  • 人工智能自动化编程:传统软件开发vs AI驱动开发对比分析
  • 云原生技术与应用-生产环境构建高可用Harbor私有镜像仓库
  • ​BRPC核心架构解析:高并发RPC框架的设计哲学
  • Whistle抓包