Python 教程之控制流(2)for 循环如何在内部工作?

简介: Python 教程之控制流(2)for 循环如何在内部工作?

在继续本节之前,我们应该事先了解 Python 迭代器。

首先,让我们看看一个简单的 for 循环是什么样子的。

# 一个简单的 for 循环示例
fruits = ["apple", "orange", "kiwi"]
for fruit in fruits:
print(fruit)

输出

apple
orange
kiwi

在这里,我们可以看到 for 循环迭代了可迭代对象fruit,它是一个列表。列表、集合、字典是少数可迭代对象,而整数对象不是可迭代对象。

For 循环可以迭代任何可迭代对象(例如:List、Set、Dictionary、Tuple 或 String)。

现在借助上面的例子,让我们深入了解一下这里内部发生了什么。

  1. 借助 iter() 函数使列表(可迭代)成为可迭代对象。
  2. 运行无限 while 循环并仅在引发 StopIteration 时才中断。
  3. 在 try 块中,我们使用 next() 函数获取水果的下一个元素。
  4. 获取元素后,我们执行了要对元素执行的操作。(即print(fruit))

fruits = ["apple", "orange", "kiwi"]
# 从该可迭代对象(即水果)创建一个迭代器对象
iter_obj = iter(fruits)
# 无限while循环
while True:
try:
  # 获取下一个项目
  fruit = next(iter_obj)
  print(fruit)
except StopIteration:
  # 如果引发了 StopIteration,则从循环中中断
  break

输出

apple
orange
kiwi

我们可以看到,在底层我们调用了 iter() 和 next() 方法。


目录
相关文章
|
20天前
|
数据采集 存储 搜索推荐
打造个性化网页爬虫:从零开始的Python教程
【8月更文挑战第31天】在数字信息的海洋中,网页爬虫是一艘能够自动搜集网络数据的神奇船只。本文将引导你启航,用Python语言建造属于你自己的网页爬虫。我们将一起探索如何从无到有,一步步构建一个能够抓取、解析并存储网页数据的基础爬虫。文章不仅分享代码,更带你理解背后的逻辑,让你能在遇到问题时自行找到解决方案。无论你是编程新手还是有一定基础的开发者,这篇文章都会为你打开一扇通往数据世界的新窗。
|
3天前
|
Python
全网最适合入门的面向对象编程教程:Python函数方法与接口-函数与方法的区别和lamda匿名函数
【9月更文挑战第15天】在 Python 中,函数与方法有所区别:函数是独立的代码块,可通过函数名直接调用,不依赖特定类或对象;方法则是与类或对象关联的函数,通常在类内部定义并通过对象调用。Lambda 函数是一种简洁的匿名函数定义方式,常用于简单的操作或作为其他函数的参数。根据需求,可选择使用函数、方法或 lambda 函数来实现代码逻辑。
|
7天前
|
存储 前端开发 索引
11个Python循环技巧
本文介绍了在Python中使用循环创建多个列表的方法,并提供了丰富的代码示例。内容涵盖根据固定数量、条件、数据类型、属性、索引范围、哈希值等不同条件创建列表的技巧,展示了如何灵活运用循环和列表推导式,提高代码的灵活性与可维护性,加速开发流程并提升程序性能。
|
15天前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
【9月更文挑战第5天】性能测试是确保应用在高负载下稳定运行的关键。本文介绍Apache JMeter和Locust两款常用性能测试工具,帮助识别并解决性能瓶颈。JMeter适用于测试静态和动态资源,而Locust则通过Python脚本模拟HTTP请求。文章详细讲解了安装、配置及使用方法,并提供了实战案例,帮助你掌握性能测试技巧,提升应用性能。通过分析测试结果、模拟并发、检查资源使用情况及代码优化,确保应用在高并发环境下表现优异。
42 5
|
23天前
|
前端开发 JavaScript 数据库
python Django教程 之模板渲染、循环、条件判断、常用的标签、过滤器
python Django教程 之模板渲染、循环、条件判断、常用的标签、过滤器
|
22天前
|
Unix Python
python 的标准库模块glob使用教程,主要为glob.glob()使用与glob.iglob()使用
python 的标准库模块glob使用教程,主要为glob.glob()使用与glob.iglob()使用
11 0
|
23天前
|
C语言 Python
Python 实现循环的最快方式(for、while 等速度对比)
Python 实现循环的最快方式(for、while 等速度对比)
|
23天前
|
SQL Shell API
python Django教程 之 模型(数据库)、自定义Field、数据表更改、QuerySet API
python Django教程 之 模型(数据库)、自定义Field、数据表更改、QuerySet API
|
程序员 Python
6_python基础—循环(上)
6_python基础—循环
102 0
6_python基础—循环(上)
7_python基础—while循环应用1-100累加和
7_python基础—while循环应用1-100累加和
343 0