《自学是门手艺》读书笔记9

Python publisher01 30℃ 0评论

无论多复杂的流程控制用分支与循环这两种语句就够了,如同无论多复杂的电路最终都是由通路和开路仅仅两个状态构成的一样。

if 语句

if 语句的最简单构成是这样 —— 注意第 1 行末尾的冒号 : 和第 2 行的缩进:

if expression:

    statements

如果表达式 expression 返回值为真,执行 if 语句块内部的 statements,否则,什么都不做,执行 if 之后的下一个语句。

如果,表达式 expression 返回值无论真假,我们都需要做一点相应的事情,那么我们这么写:

if expression:

    statements_for_True

else:

    statements_for_False

如果表达式 expression 返回值为真,执行 if 语句块内部的 statements_for_True,否则,就执行 else 语句块内部的 statements_for_False

有时,表达式 <expression> 返回的值有多种情况,并且针对不同的情况我们都要做相应的事情,那么可以这么写:

if expression_1:

    statements_for_expression_1_True

elif expression_2:

    statements_for_expression_2_True

elif expression_3:

    statements_for_expression_3_True

elif expression_…:

    statements_for_expression_…_

for 循环

Python 语言中,for 循环不使用其它语言中那样的计数器,取而代之的是 range() 这个我称其为 “整数等差数列生成器” 的函数。

range() 是个内建函数,它的文档是这样写的:

range(stop)

range(start, stop[, step])

只有一个参数的时候,这个参数被理解为 stop,生成一个从 0 开始,到 stop – 1 的整数数列。

这就解释了为什么有的时候我们会在 for … in range(…): 这种循环内的语句块里进行计算的时候,经常会在变量之后写上 + 1,因为我们 range(n) 的返回数列中不包含 n,但我们有时候却需要 n。

start 参数的默认值是 0。如需指定起点,那么得给 range() 传递两个参数,比如,range(2, 13)……

第三个参数可选;step,步长,就相当于是 “等差数列” 当中的 “差”,默认值是 1。例如,range(1, 10, 2) 生成的是这样一个数列 [1, 3, 5, 7, 9]。

Continue、Break 和 Pass

在循环的过程中,还可以用 continue 和 break 控制流程走向,

continue 语句将忽略其后的语句开始下次循环,而 break 语句将从此结束当前循环,开始执行循环之后的语句:

for 语句块还可以附加一个 else —— 这是 Python 的一个比较有个性的地方。附加在 for 结尾的 else 语句块,在没有 break 发生的情况下会运行。

pass 这个语句主要用来占位占位。

while 循环

在当前绝大多数编程语言中,一般都提供两种循环结构:

Collection-controlled loops(以集合为基础的循环)
Condition-controlled loops(以条件为基础的循环)

for … in … 是 Collection-controlled loops;while是Condition-controlled loops

while 循环的格式如下:

while expression:
        statements

for 和 while 的区别

for 更适合处理序列类型的数据(Sequence Type)的迭代,比如处理字符串中的每一个字符,比如把 range() 返回的数列当作某种序列类型的索引。

while 更为灵活,因为它后面只需要接上一个逻辑表达式即可。

控制流程总结

只处理一种情况,用 if …
处理 True/False 两种情况,用 if … else …
处理多种情况,用 if … elif … elif … else …
迭代有序数据类型,用 for … in …,如果需要处理没有 break 发生的情况,用 for … else …
其它循环,用 while …
与循环相关的语句还有 continue、break、pass
函数从控制流角度去看其实就是子程序

你或许想:《去原作者写文章的地方

转载请注明:Python量化投资 » 《自学是门手艺》读书笔记9

喜欢 (0)or分享 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址