for 循环
切换视频源:

for 循环

作者: 高峰 编辑: 莫烦 发布于: 2016-01-01

在上一讲中我们学习了 while 语句进行循环控制,接下来我们将要学习另一种循环语句 for 。

基本使用

不同编程语言都有 for 语言,比如 C# 语言中的 foreach, Java 语言中的 for,在 Python 中的基本使用方法如下。

sequence 为可迭代的对象,item 为序列中的每个对象。

实例

输出的结果为 1,2,3,4,5,6,7,12,543,876,12,3,2,5, 内容依次为 example_list 中的每一个元素 注意 Python 是使用缩进表示程序的结构,如果程序这样编写,

那么每次循环都会输出 inner of for,在循环结束后,输出 outer of for 一次。

进阶

range使用

在 Python 内置了工厂函数,range 函数将会返回一个序列,总共有三种使用方法

1 range(start, stop)

其中 start 将会是序列的起始值,stop为结束值,但是不包括该值,类似 数学中的表达 [start, stop),左边为闭区间,右边为开区间。

上述表达将会返回 1-9 所有整数,但不包含 10

2 range(stop)

如果省略了 start 那么将从 0 开始,相当于 range(0, stop)

3 range(start, stop, step)

step 代表的为步长,即相隔的两个值得差值。从 start 开始,依次增加 step 的值,直至等于或者大于 stop

将会输出 0, 5, 10

高级主题

4.1 内置集合

Python 共内置了 listtupledictset 四种基本集合,每个 集合对象都能够迭代。

tuple 类型

程序将以此按行输出 'python', 2.7 和 64。

dictionary 类型

输出的结果为:platform 64,lan python, version 2.7, 字典在迭代的过程 中将 key 作为可迭代的对象返回。注意字典中 key 是乱序的,也就是说和插入 的顺序是不一致的。如果想要使用顺序一致的字典,请使用 collections 模块 中的 OrderedDict 对象。

set 类型

将会输出 python, python3, python2 set 集合将会去除重复项,注意输出的 结果也不是按照输入的顺序。

4.2 迭代器

Python 中的 for 句法实际上实现了设计模式中的迭代器模式 ,所以我们自己也可以按照迭代器的要求自己生成迭代器对象,以便在 for 语句中使用。 只要类中实现了 __iter__next 函数,那么对象就可以在 for 语句中使用。 现在创建 Fibonacci 迭代器对象,

将会输出前 5 个 Fibonacci 数据 1,1, 2, 3, 5

4.3 生成器

除了使用迭代器以外,Python 使用 yield 关键字也能实现类似迭代的效果,yield 语句每次 执行时,立即返回结果给上层调用者,而当前的状态仍然保留,以便迭代器下一次循环调用。这样做的 好处是在于节约硬件资源,在需要的时候才会执行,并且每次只执行一次。

将会输出前 5 个 Fibonacci 数据 1,1, 2, 3, 5


降低知识传递的门槛

莫烦经常从互联网上学习知识,开源分享的人是我学习的榜样。 他们的行为也改变了我对教育的态度: 降低知识传递的门槛免费 奉献我的所学正是受这种态度的影响。 【支持莫烦】 能让我感到认同,我也更有理由坚持下去。

我组建了微信群,欢迎大家加入,交流经验,提出问题,互相帮持。 扫码后,请一定备注"莫烦",否则我不会同意你的入群申请。

wechat