每天一小时python官方文档学习(二)————流程控制工具
4. 其他流程控制工具
4.1. if 语句
大多数人都很熟悉的if语句:
if condition1:pass
elif condition2:pass
else condition3:pass
注意python中没有switch或case语句,所以一个 if ... elif ... elif ...
序列可以看作是其他语言中的 switch 或 case 语句的替代。
4.2. for 语句
Python 中的 for 语句并不总是对算术递增的数值进行迭代(如同 Pascal),或是给予用户定义迭代步骤和暂停条件的能力(如同 C),而是对任意序列进行迭代(例如列表或字符串),条目的迭代顺序与它们在序列中出现的顺序一致。
在遍历同一个集合时修改该集合的代码可能很难获得正确的结果。通常,更直接的做法是循环遍历该集合的副本或创建新集合:
# 遍历副本
for user, status in users.copy().items():if status == 'inactive':del users[user]# 创建新集合
active_users = {}
for user, status in users.items():if status == 'active':active_users[user] = status
4.3. range() 函数
若要遍历一个数字序列,就可以用range()
函数。传入参数为range(初值,终值,步长),注意左闭右开,终值不包括在内:
>>> for i in range(0,10,3):
... print(i)
...
0
3
6
9
range()
所返回的对象在许多方面表现得像一个列表,但实际上却并不是。此对象会在你迭代它时基于所希望的序列返回连续的项,但它没有真正生成列表,这样就能节省空间。
我们称这样对象为 iterable(可迭代对象),也就是说,适合作为这样的目标对象:函数和结构期望中从获取连续的项直到所提供的项全部耗尽。
4.4. break 和 continue 语句,以及循环中的 else 子句
break
语句,和 C 中的类似,用于跳出最近的 for 或 while 循环。
注意循环中的else
子句和条件判断if
中的else
不一样,它会在循环耗尽了可迭代对象 (使用 for) 或循环条件变为假值 (使用 while) 时被执行,但不会在循环被 break 语句终止时被执行。
相比于if
语句中的else
,它更像try
语句中的else
, try
语句中的 else
子句会在未发生异常时执行,而循环中的 else
子句则会在未发生 break 时执行。
>>> for n in range(2, 10):
... for x in range(2, n):
... if n % x == 0:
... print(n, 'equals', x, '*', n//x)
... break
... else:
... # loop fell through without finding a factor
... print(n, 'is a prime number')
...
2 is a prime number
3 is a prime number
4 equals 2 * 2
5 is a prime number
6 equals 2 * 3
7 is a prime number
8 equals 2 * 4
9 equals 3 * 3
注意看: else
子句属于 for
循环, 不属于 if
语句。
continue
语句则是借鉴自 C 语言,表示继续循环中的下一次迭代。
4.5. pass 语句
pass
语句什么也不做。当语法上需要一个语句,但程序需要什么动作也不做时,可以使用它:
>>> while True:
... pass # 一直忙,等待键盘中断(按Ctrl+C)
...
每天一小时python官方文档学习(二)————流程控制工具相关推荐
- 每天一小时python官方文档学习(一)————python的简单介绍
我们都知道,python的官方文档写得十分详尽,也是每一个学习python的人都绕不开的. 所以从今天开始,我每天都会用一小时学习python的官方文档,按照文档目录的顺序,摘录一些有用的语句,写下一 ...
- 每天一小时python官方文档学习(七)————模块与包
6. 模块 模块是一个包含Python定义和语句的文件,实际上就是一个正常的.py文件.但是作用和普通需要运行的程序不一样,它实际上有点像函数.如果说函数实现了代码的重用,模块则是实现了函数的重用.我 ...
- 每天一小时python官方文档学习(四)————数据结构之列表
终于进入到第五章数据结构部分了,python中常用的容器有列表.元组.集合和字典,今天主要了解的是最为常用的列表. 5. 数据结构 5.1. 列表的更多特性 对于列表的操作有很多,具体操作看官方文档就 ...
- 每天一小时python官方文档学习(三)————函数
上一天看到第四章的一半,介绍了一些常用的流程控制工具,也就是常用语句,主要是if.for.range().break.continue.else和pass.今天把第四章剩下的看完,讲的是如何在pyth ...
- 每天一小时python官方文档学习(六)————循环和条件控制的进阶用法
学习完数据结构之后,我们就能够对之前在第二天中讲过的流程控制工具,添加更多的用法了,这里主要介绍的是for循环语句和if与while条件判断语句. 5.6. 循环的技巧 我们学过的遍历序列for i ...
- 每天一小时python官方文档学习(五)————数据结构之元组、集合与字典
昨天介绍完了最常用的列表,之后就是次常用的元组.集合与字典了. 5.3. 元组和序列 元组和之前讲过的列表有很多共同特性,例如索引和切片操作.实际上,他们是 序列 数据类型(list, tuple, ...
- Python官方文档学习心得(第三篇)
1.定义方法 关键字 def 是方法定义的标志.接下来紧跟方法名和被圆括号所包围的参数列表.方法的主 体语句将在下一行开始并且必须缩进. 方法主体的首句可选择性地是一句字符,用来说明方法的主要功能 例 ...
- Python官方文档学习心得(第六篇)
1.作用域 关键字 global 和 nonlocal会影响变量绑定,因为是全局变量 2.类 因此类可以定义一个名叫_init()的特殊方法,如下: def__init__(self): self.d ...
- Python官方文档学习心得(第五篇)
1.模块 一个模块是包含 python 定义和语句的文件.文件名称是由模块名加上后缀名.py 组成的.在 模块中,模块的名字(可以作为一个字符串)是一个作为全局变量_name_的值的变量 fibo是模 ...
最新文章
- Go 语言编程 — 高级数据类型 — 数组
- Leetcode 217. 存在重复元素 (每日一题 20210913)
- 详解Attention、Tacotron、WaveNet、LPCNet声码器等前沿方法
- linux生成表格文件大小,如何为linux中的文件夹生成清单(文件列表及其大小和数量)...
- ASP.NET CORE MVC 实现减号分隔(Kebab case)样式的 URL
- mysql python 2.7.14_Python2.7.14新手学习
- C语言文件的随机读写
- 【POJ3415】 Common Substrings (SA+单调栈)
- 【SimpleITK】坐标次序问题
- mysql为什么limit没用,MySQL是否可以使用LIMIT语法进行子查询?如果没有,为什么?...
- java字符串以什么结尾_java怎么判断一个字符串以什么结尾
- fiddler电脑抓包和HttpCanary(小黄鸟)手机抓包教程
- Object.entries()方法的使用和实现
- 什么是 FOUC(无样式内容闪烁)?你如何来避免 FOUC?
- C语言实现简易扫雷游戏
- Tushare(介绍)
- 如何拥有好的精力去做事情?管理精力
- 领域搜索算法java_使用JAVA实现算法——禁忌搜索算法解决TSP问题
- 水浒传中的108将各是谁
- 国家科技奖获奖项目巡礼:创新英雄们这么说
热门文章
- 用批处理修复 win10 无法升级的问题
- 【计算机图形学】实验:C#语言采用GDI+定义笔刷并填充图形完整实验操作流程
- Android Studio开发基础之Service
- 剑指offer之分行从上到下打印二叉树
- React Native之js调用Android原生使用Callback传递结果给js
- linux c之动态打开链接库(dlopen dlsym dlclose)
- 女朋友来大姨妈怎么办?
- “一边熬夜一边求不要猝死”,90后养生朋克指南,条条扎心!
- 【直观理解】一文搞懂RNN(循环神经网络)基础篇
- matlab排版形式是什么样子,工作型PPT,图文排版的4种常见样式