控制流工具

2021-04-16  本文已影响0人  W无花果W

1.while语句

只要条件保持为真,while循环就会执行。在Python中,就像在C中一样,任何非零整数值都是true;零是false。条件也可以是字符串或列表值,实际上是任何序列;任何长度为非零的都是true,空序列都是false。

示例

2.if语句

可以有零个或多个elif部分,else部分是可选的。关键字“elif”是“else if”的缩写,有助于避免过度缩进。if…elif…elif…序列是其他语言中switch或case语句的替代。

示例

3.for语句

Python中的for语句与C或Pascal中的for语句有些不同。Python的for语句并不总是迭代一个数列的算术级数(如Pascal),也不允许用户同时定义迭代步骤和停止条件(如C),而是按照它们在序列中出现的顺序迭代任意序列(列表或字符串)的项。

在对同一个集合进行迭代时修改该集合的代码可能很难获得正确的结果。相反,在集合的副本上循环或创建新集合通常更为直接:

代码示例 输出结果

4.range()函数

如果您确实需要迭代一个数字序列,那么内置函数range()就很方便了。它生成算术级数:

示例

给定的端点永远不是生成序列的一部分;range(10)生成10个值,即长度为10的序列项的合法索引。可以让范围从另一个数字开始,或者指定不同的增量(甚至是负数;有时这称为“步长”):

示例

要迭代序列的索引,可以按如下方式组合range()和len():

示例

在许多方面,range()返回的对象的行为就像是一个列表,但事实上它不是。它是一个对象,当您对它进行迭代时,它返回所需序列的连续项,但它实际上并不构成列表,因此节省了空间。

我们说这样的对象是iterable,也就是说,适合作为函数和构造的目标,这些函数和构造期望从中获得连续的项,直到供应耗尽为止。我们已经看到for语句就是这样一个构造,而接受iterable的函数的例子有sum()和list():

示例

5.break和continue语句,以及循环上的else子句

break语句与C中的语句一样,脱离了最内部的for或while循环。循环语句可以有else子句;当循环因iterable的耗尽而终止(for)或当条件变为false(while)时执行,但当循环由break语句终止时不执行。

else分支属于for循环,不属于if语句

continue语句也是从C中借用的,它继续循环的下一次迭代:

示例

6.pass语句

pass语句不起任何作用,相当于空语句。当在语法上需要一个语句,但程序不需要任何操作时,可以使用它。

7.定义函数

关键字def引入函数定义。它必须后跟函数名和带圆括号的形式参数列表。构成函数体的语句从下一行开始,必须缩进。

函数体的第一条语句可以是一个字符串文本;这个字符串文本是函数的文档字符串或docstring,用"""..."""三引号括起来。

函数的执行引入了一个新的符号表,用于函数的局部变量。更准确地说,函数中的所有变量赋值都将值存储在局部符号表中;而变量引用首先查看局部符号表,然后查看封闭函数的局部符号表,然后查看全局符号表,最后查看内置名称表。因此,全局变量和封闭函数的变量不能在函数中直接赋值(除非对于全局变量,使用global语句;或者对于封闭函数的变量,使用nonlocal语句),尽管它们可以被引用。

上一篇下一篇

猜你喜欢

热点阅读