Coursera - Python for Everybody - 课程笔记 - Week 7
程序员文章站
2022-04-27 10:20:37
...
Week 7
5.1 循环和迭代 Loops and Iteration
- 循环,即代码中重复执行的部分
- 循环通常会有一个迭代变量,每执行一次循环这个变量就改变一次,通常这个变量会遍历一个数字序列
- 对
while
循环,判定表达是为真,则执行本词循环,否则跳出并终止循环
while con :
something-to-do
otherthings
- 无限循环,死循环,由于不当的设计导致(如,迭代变量没有改变)永远无法跳出循环的循环代码
- 零循环,由于不当的设计导致(如,迭代变量从初始化就不符合循环条件)永远无法执行该段循环的循环代码
- 跳出循环:
-
break
语句可以跳出当前循环并直接执行循环后的第一个语句 -
break
可以出现在循环体中的任意位置(通常是条件结构的一个结果) -
continue
语句结束当前次迭代,并跳至循环顶部进行下一次的迭代
-
5.2 确定循环 Definite Loops
- 上一部分的
while
是不定循环(Infinite Loop),只有逻辑判定式为假或者出发一个break
语句时才会跳出循环 - 确定循环时有限的,使用
for
关键字
for i in some_range :
something-to-do
otherthings
- 迭代变量显式地作为语法的一部分
-
in
是另外一个关键字,表示迭代变量迭代的范围,整个循环体针对这个范围中的每个元素执行一次,每次迭代变量对应这个范围的其中一个元素(迭代遍历) - 使用缩进表明循环代码块的范围
- 迭代范围可以是各种的元素集合(collections),包括但远不限于数字列表,字符串列表,字符串中的字符等
-
for
循环相比于while
循环,帮助人们完成了处理迭代变量等操作
5.3 寻找最大值 Finding the Largest Value
- 使用循环解决对于一个数据集合一次只能看一项但是需要全都看一遍的问题
- 对一些变量置初始值
- 对于数据中的某些内容,对每一项单独地做一些事情,同时更新这些变量
- 看最终变量的结果
- 使用循环查找最大值
- 逐一地查看每一项
- 暂存目前位置最大的值
- 最终结果就是整个序列的最大值
5.4 循环技巧 Loop Idiom
- 计数(这个循环部分的实现成为计数器)
- 计数变量初始化为0
- 每循环一次计数变量加1
- 最终结果即序列元素总计数值
- 求和
- 总和变量初始化为0
- 每循环一次将对应序列项加入到总和变量上
- 最终结果为序列总和
- 平均数
- 计数
- 求和
- 总和除以个数即为平均数
- 过滤器
- 每循环一次,使用条件语句判定
- 符合要求,执行某些逻辑
- 使用布尔变量进行搜索
- 布尔值初始化为
False
- 循环查找一个特定值,找到将布尔值置为
True
- 最终结果为
True
,则找到,否则没有找到
- 布尔值初始化为
- 最小值
- 基本思路恰好与最大值对称
- 除了初始值的设定,需要设定为一个当前问题下足够大的值(但是这会出问题,可能意外地不够大)
- python的特性,将这个值设为
None
,在循环中,如果这个值为None
,直接赋值,否则赋值为当前最大值 -
None
类型只有一个值,就是None
- 使用
is
或者is not
进行判定,表示“完全相同”,比双等号表义更强