当前位置: 首页 > 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.xdnf.cn/news/1110349.html

相关文章:

  • 【TA/Unity】Shader基础结构
  • 强化学习、PPO和GRPO的通俗讲解
  • 创客匠人:解析创始人 IP 打造对知识变现的深层赋能
  • os.machine()详解
  • vue3 el-table动态表头
  • 菜鸟的C#学习(二)
  • TDengine 使用最佳实践(1)
  • hot100链表(1)
  • 工业软件出海的ERP-PLM-MES一体化解决方案
  • 自动化运维工具jenkins问题
  • AI 时代的分布式多模态数据处理实践:我的 ODPS 实践之旅、思考与展望
  • 单细胞分析教程 | (二)标准化、特征选择、降为、聚类及可视化
  • 牛客网50题
  • 第14次课 认识图 A
  • docker镜像原理与镜像制作优化
  • Classifier guidance与Classifier-free guidance的原理和公式推导
  • 【STM32实践篇】:最小系统组成
  • 深入详解:决策树在医学影像领域心脏疾病诊断的应用及实现细节
  • Pytest 跳过测试技巧:灵活控制哪些测试该跑、哪些该跳过
  • 图像扭曲增强处理流程
  • 物联网设备数据驱动3D模型的智能分析与预测系统
  • frp内网穿透教程及相关配置
  • 【Redis实战】Widnows本地模拟Redis集群的2种方法
  • Git 相关的常见面试题及参考答案
  • 国产电钢琴电子琴手卷钢琴对比选购指南
  • 2025年亚太杯(中文赛项)数学建模B题【疾病的预测与大数据分析】原创论文讲解(含完整python代码)
  • ESP32使用freertos更新lvgl控件内容
  • 搭建云手机教程
  • 聊下easyexcel导出
  • Java可变参数