分支和循环 (branch and loop)
python中分支和循环结构语法的注意和特点:(1)严格的缩进(2)if,elif,else,while,for后面要加冒号(:),也只有冒号一种标点符号。
A. 分支(branch)
a. 语法结构:
(1)判断一个条件,如果这个条件成立,就执行其包含的某条语句或某个代码块。
语法:
if condition:
statements(s)
ex:
注: 其包含的某个语句或一个代码块是由相同的缩进来表示包含的。
(2)判断一个条件:如果条件成立,就执行其包含的某条语句或某个代码块;如果条件不成立,就执行另外的某条语句或某个代码块。
语法:
if condition:
statement(a)
else:
statement(b)
ex:
(3)判断多个条件,如果第一个条件不成立,则继续判断第二个条件,如果第二个条件还不成立,则继续判断第三个条件……
语法:
if condition1:
statement(a)
elif condition2:
statement(b)
elif condition3:
statement(c)
......
ex:
注:
此时当第一个条件成立时,就会直接退出if,不再判断下面的elif
如:
(4) 是在(3)的基础上加上一个else,表示上面所有条件均不成立的情况下,执行某条语句或某个代码块。
语法:
if condition1:
statement(a)
elif condition2:
statement(b)
elif condition3:
statement(c)
......
else:
statement(n)
ex:
(5)条件表达式:
条件成立时执行的语句 if condition else 条件不成立时执行的语句
b. 分支结构的嵌套(nested branches)
注意每一层的缩进
example(from 原课程):
B. 循环(loop)
a. while
(1)基本规则:只要条件成立,其所包含的某条语句或某个语句块就会一直被执行。
语法:
while condition:
statement(s)
example(from 原课程,第二个例子为计算1到1000000的和):
(2)死循环
while True:
print(1)
当需要终止无意造成的死循环时可以使用control+C
b. for
(1)基本规则:语法:
for 变量 in 可迭代对象:
statement(s)
ex:
(2)range 函数
用法:
#注意:结果中,stop是不包含的
range(stop) #从0开始直到stop
range(start,stop)
range(start,stop,step) #注意step是可以是负值的
注意:stop是不包含的。如range(2)的运行结果会是0,1
c. break, continue, else,嵌套在循环中的运用
(1)break
break用于跳出循环体,当遇到break时,会直接跳出循环,不在执行循环体内后面的语句。例子(from 原视频):
(2)continue
也可以跳出循环体,但是只是跳出本轮循环,跳出会还会回到循环体的条件判断位置,如果条件还成立的话就继续下一轮循环。
example:
continue 和 break 的区别:
(3)else 在循环中的使用
当循环的条件不再为真的时候便会执行else语句的内容。
注:(1)当用break跳出的时候,循环条件依然为真,else语句不会被执行
ex:
(2)while else的语句可以用来检测循环退出的状况
ex:
**(3) 在使用while else(for else)时,要注意else的缩进,与while,for对齐。(如果嵌套,要注意和对应的while,for对齐)
(4)嵌套 (nested loop)
ex:打印9*9乘法表
在嵌套里,break 和continue 只能作用于一层循环体。
example (while):
*example (for):
本例中:正确的代码中,2到n-1之间,如果能找到可以整除的数则会break跳出内层循环。此时循环非正常终止,对应的else语句不会执行。如果else语句被执行,只能是内层循环跑了一遍,发现2到n-1之间没有可以整除的数。
本文为自学B站上鱼C的python课程随手做的笔记。
原视频链接:https://www.bilibili.com/video/BV1c4411e77t?p=8