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

相关文章:

  • linux 系统找出磁盘IO占用元凶 —— 筑梦之路
  • 工业软件出海的ERP-PLM-MES一体化解决方案
  • PostgreSQL HOT (Heap Only Tuple) 更新机制详解
  • Socket到底是什么(简单来说)
  • batchnorm类
  • 【Docker基础】Dockerfile指令速览:基础常用指令详解
  • 【PTA数据结构 | C语言版】车厢重排
  • 火山引擎:字节跳动的技术赋能初解
  • 【学习新知识】用 Clang 提取函数体 + 构建代码知识库 + AI 问答系统
  • 商业智能(BI)系统深度解析
  • 【华为OD】MVP争夺战(C++、Java、Python)
  • 【Lucene/Elasticsearch】 数据类型(ES 字段类型) | 底层索引结构
  • Linux如何设置自启动程序?
  • 三步定位 Git Push 403:从日志到解决
  • 我自建服务器部署了 Next.js 全栈项目
  • Java实现文字图片
  • Git系列--4.Git分支设计规范
  • 【PMP备考】敏捷思维:驾驭不确定性的项目管理之道
  • Android音视频探索之旅 | C++层使用OpenGL ES实现视频渲染
  • 笔记-分布式计算基础
  • 容器化改造避坑指南:传统应用迁移K8s的10个关键节点(2025实战复盘)
  • 黑客工具Nessus介绍及其安装使用教程
  • 无法打开windows安全中心解决方案
  • python内置函数 —— zip
  • 【6.1.2 漫画分布式事务技术选型】
  • Pandas 模块数据处理全解析
  • Wwise音频在Unity中内存泄露问题
  • 如何检测自动化设备中的直线导轨品质是否优良?
  • 【从零开始编写数据库:基于Python语言实现数据库ToyDB的ACID特性】
  • 2025Stockapi股票数据接口,股票实时数据,技术指标macd,kdj,cci技术指标算法,集合竞价数据,龙虎榜数据接口