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() 方法。


目录
相关文章
|
8天前
|
数据可视化 DataX Python
Seaborn 教程-绘图函数
Seaborn 教程-绘图函数
40 8
|
8天前
Seaborn 教程-主题(Theme)
Seaborn 教程-主题(Theme)
29 7
|
8天前
|
Python
Seaborn 教程-模板(Context)
Seaborn 教程-模板(Context)
29 4
|
8天前
|
数据可视化 Python
Seaborn 教程
Seaborn 教程
25 5
|
1月前
|
开发工具 Python
[oeasy]python043_自己制作的ascii码表_循环语句_条件语句_缩进_indent
本文介绍了如何使用Python制作ASCII码表,回顾了上一次课程中`print`函数的`end`参数,并通过循环和条件语句实现每8个字符换行的功能。通过调整代码中的缩进,实现了正确的输出格式。最后展示了制作完成的ASCII码表,并预告了下一次课程的内容。
27 2
|
1月前
|
Python
SciPy 教程 之 Scipy 显著性检验 9
SciPy 教程之 Scipy 显著性检验第9部分,介绍了显著性检验的基本概念、作用及原理,通过样本信息判断假设是否成立。着重讲解了使用scipy.stats模块进行显著性检验的方法,包括正态性检验中的偏度和峰度计算,以及如何利用normaltest()函数评估数据是否符合正态分布。示例代码展示了如何计算一组随机数的偏度和峰度。
28 1
|
1月前
|
BI Python
SciPy 教程 之 Scipy 显著性检验 8
本教程介绍SciPy中显著性检验的应用,包括如何利用scipy.stats模块进行显著性检验,以判断样本与总体假设间的差异是否显著。通过示例代码展示了如何使用describe()函数获取数组的统计描述信息,如观测次数、最小最大值、均值、方差等。
29 1
|
1月前
|
Python
SciPy 教程 之 Scipy 显著性检验 6
显著性检验是统计学中用于判断样本与总体假设间是否存在显著差异的方法。SciPy的scipy.stats模块提供了执行显著性检验的工具,如T检验,用于比较两组数据的均值是否来自同一分布。通过ttest_ind()函数,可以获取两样本的t统计量和p值,进而判断差异是否显著。示例代码展示了如何使用该函数进行T检验并输出结果。
29 1
|
2月前
|
数据可视化 IDE 开发工具
【Python篇】PyQt5 超详细教程——由入门到精通(中篇二)
【Python篇】PyQt5 超详细教程——由入门到精通(中篇二)
314 13
|
2月前
|
监控 数据可视化 搜索推荐
【Python篇】matplotlib超详细教程-由入门到精通(下篇)2
【Python篇】matplotlib超详细教程-由入门到精通(下篇)
42 8