大爽Python入门公开课教案

点击查看教程总目录

for循环

可迭代对象iterable

不同于其他语言。

python的for循环只能用于遍历 可迭代对象iterable 的项。

即只支持以下语法:

for item in iterable:
...

其中

  • iterable是可迭代对象
  • item是可迭代对象中的项。
  • ...是(要换成)循环时要执行的代码。

可迭代对象的定义和具体原理解释起来比较复杂(其实我也不是很会Orz)。

这里只需要了解基础的。

哪些是(基础的)可迭代对象。

回顾一下,我们现阶段所学习的对象,

哪些是是可迭代的。

  • 序列sequence,包括字符串str,元组tuple,列表list
  • 字典dict,迭代出的项是键key
  • range(n)

这里再进一步的介绍下range这个函数

range

首先回顾下for i in range(n)的效果,

i从0,1,2遍历到n-1。

示例如下

>>> for i in range(5):
... print(i)
...
0
1
2
3
4

实际上,该方法会产生一个可迭代对象。

不过可以用list方法将其产生的可迭代对象

转换成列表。

>>> range(5)
range(0, 5)
>>> list(range(5))
[0, 1, 2, 3, 4]

有时可以使用这个办法快速生成列表。

接下来,我们详细的介绍下range这个函数。

为了便于理解,大家可以认为range函数有三种写法:

  • range(end): 从0,1,2迭代到n-1。
  • range(start, end): 从start, start+1, start+2 迭代到n-1。

    即迭代时,每次增长1
  • range(start, end, step): 从start, start+step, start+2*step迭代到n-1。

    即迭代时,每次增长step。(step本身有步长的意思,或者说一步的距离)

实际上,第三种写法range(start, end, step)是完整形态。

第二种写法是step为1的特殊形态。(step默认值为1)

第一种写法是start为0、step为1的特殊形态。(start默认值为0)

到这里,大家应该能理解:

我们上面调用range(5)的时候,

实际上得到range(0, 5)的原因了。

代码示例

>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(5, 10))
[5, 6, 7, 8, 9]
>>> list(range(0, 10, 2))
[0, 2, 4, 6, 8]
>>> list(range(0, 10, 3))
[0, 3, 6, 9]

while循环

for循环的特点是,直接遍历可迭代对象。

while循环的特点是,按条件循环。

其语法如下。

while condition:
statement
  • condition,循环条件
  • statement: 循环体。
  1. 如果conditionTrue,则执行下方缩进的代码块statement

    否则,跳出while循环。
  2. (conditionTrue时)执行完代码块statement之后,

    回到循环开头while condition处,重复步骤一。

使用示例

n = 5
while n > 0:
n -= 1
print(n)

其输出为

4
3
2
1
0

breakcontinue

  • break: 直接退出(跳出)循环
  • continue: 跳过本轮循环,进入下一轮循环。

break示例

lst = [10, 5, 2, 9, 3, -1, 6, 7]

for item in lst:
if item < 0:
break print(item)

其输出为

10
5
2
9
3

解释:

遍历列表中的每一项item

item小于0时,break中断了整个循环。

后面的项就无法被遍历。

continue示例

lst = [10, 5, 2, 9, 3, -1, 6, 7]

for item in lst:
if item < 0:
continue print(item)

其输出为

10
5
2
9
3
6
7

解释:

遍历列表中的每一项item

item小于0时,跳过本轮循环,本轮后面的代码(即print(item))不再执行,

进入下一轮循环, 直接遍历列表的下一个item

其效果为遇到小于0的item不输出(跳过输出)。

大爽Python入门教程 3-3 循环:`for`、`while`的更多相关文章

  1. 大爽Python入门教程 1-3 简单的循环与判断

    大爽Python入门公开课教案 点击查看教程总目录 这里只初步认识下循环和判断,以便于我们去实现一些简单的计算. 循环和判断的详细知识和细节,我们将在后面的章节(大概是第三章)展开阐述. 1 初步了解 ...

  2. 大爽Python入门教程 3-4 实践例题

    大爽Python入门公开课教案 点击查看教程总目录 1. 求和 使用循环,计算列表所有项的和,并输出这个和. 列表示例 lst = [8, 5, 7, 12, 19, 21, 10, 3, 2, 11 ...

  3. 大爽Python入门教程 3-5 习题

    大爽Python入门公开课教案 点击查看教程总目录 1 求平方和 使用循环,计算列表所有项的平方和,并输出这个和. 列表示例 lst = [8, 5, 7, 12, 19, 21, 10, 3, 2, ...

  4. 大爽Python入门教程 3-6 答案

    大爽Python入门公开课教案 点击查看教程总目录 1 求平方和 使用循环,计算列表所有项的平方和,并输出这个和. 列表示例 lst = [8, 5, 7, 12, 19, 21, 10, 3, 2, ...

  5. 大爽Python入门教程 2-5 *拓展实践,对比与思考

    大爽Python入门公开课教案 点击查看教程总目录 本文偏难. 推荐等第一二三四章上完后,回过来拓展阅读. 基础情景思考 假设有这样一张成绩表 最左边的一列是名字,起名麻烦. 这里直接用ABC...来 ...

  6. 大爽Python入门教程 2-3 字符串,列表,字典

    大爽Python入门公开课教案 点击查看教程总目录 除了通用的序列方法, 列表和字符串还有些自己的专属方法. 后面介绍有些是英中文对照介绍(英文来自官方文档), 便于大家更深入的去理解其意思. 灵活的 ...

  7. 大爽Python入门教程 2-1 认识容器

    大爽Python入门公开课教案 点击查看教程总目录 1 什么是容器 先思考这样一个场景: 有五个学生,姓名分别为: Alan, Bruce, Carlos, David, Emma. 需要给他们都打一 ...

  8. 大爽Python入门教程 1-4 习题

    大爽Python入门公开课教案 点击查看教程总目录 1 [思考]方向变换 小明同学站在平原上,面朝北方,向左转51次之后(每次只转90度), 小明面朝哪里?小明转过了多少圈? (360度为一圈,圈数向 ...

  9. 大爽Python入门教程 1-5 答案

    大爽Python入门公开课教案 点击查看教程总目录 1 方向变换 >>> 51//4 12 >>> 51%4 3 答: 向左转51次之后, 小明面朝东方, 转过了1 ...

随机推荐

  1. Chrome浏览器启动参数大全(命令行参数)

    前言 在开发Web项目当中,浏览器必不可少,而浏览器的启动参数可以帮我们实现很多功能. 常用参数 常用参数请参考下表. 序号 参数 说明 1 --allow-outdated-plugins 不停用过 ...

  2. Pytorch学习2020春-1-线性回归

    线性回归 主要内容包括: 线性回归的基本要素 线性回归模型从零开始的实现 线性回归模型使用pytorch的简洁实现 线性回归的基本要素 模型 为了简单起见,这里我们假设价格只取决于房屋状况的两个因素, ...

  3. SAE助力南瓜电影7天内全面Severless

    作者:李刚(寻如),阿里云解决方案架构师 南瓜电影APP是国内领先的专注于影视精品化运营的垂直类视频产品,在移动互联网.IPTV.OTT等客户端,面向广大中产阶级精英群体,提供有异于院线及其他视频平台 ...

  4. NOIP模拟79

    T1 F 解题思路 因为每个点会产生贡献当且仅当它在可以到他的点之前被删除,并且此题遵守期望的线性性. 因此设所有可以到达点 \(i\) 的数量为 \(c_i\) 那么答案就是 \(\sum \fra ...

  5. C 库函数源码

    github URL git://sourceware.org/git/glibc.git 码云 URL https://gitee.com/jason.R.xie/glibc.git

  6. 【转】C语言 printf格式控制符 完全解析

    printf的格式控制的完整格式:%     -     0     m.n     l或h     格式字符下面对组成格式说明的各项加以说明:①%:表示格式说明的起始符号,不可缺少.②-:有-表示左 ...

  7. Windows系统安装Java步骤

    今天学习到Burp Suite的使用,提示到安装Burp Suite需要安装Java环境. 于是乎,本弱鸡开启了漫长的Java环境安装之路~ 一.Java SE版本众多,在这里推荐下载Java1.8版 ...

  8. 使用Servlet前Tomcat介绍

    虚拟目录的映射方式:让tomcat服务器自动映射tomcat服务器会自动管理webapps目录下的所有web应用,并把它映射成虚似目录.换句话说,tomcat服务器webapps目录中的web应用,外 ...

  9. [对对子队]发布声明Beta

    Beta版本的新功能 新增的游戏内容 循环部分关卡 Beta阶段我们制作了游戏的第4-6关,为循环部分关卡.这一部分的关卡设计以编程的循环思想为基础,在流水线中加入了新的命令--循环语句,并以此为核心 ...

  10. [对对子队]会议记录4.19(Scrum Meeting10)

    今天已完成的工作 何瑞 ​ 工作内容:搭建第2关,基本完成第3关 ​ 相关issue:搭建关卡2.3 ​ 相关签入:4.19签入1 4.19签入2 刘子航 ​ 工作内容:完成关卡选择界面的设计图 ​ ...