程序结构
计算机在解决某个具体问题时,主要有三种形式,分别是顺序控制执行所有语句、选择执行部分语句和循环执行部分语句。根据以上三种解决问题的形式,程序设计过程中,也有三种基本结构,分别为顺序结构、选择结构和循环结构。
顺序控制
顺序结构很好理解,就是计算机按照程序语句的顺序由上到下依次执,每一条语句都会被忠实的执行,这样就有很大的局限性。如果一个问题可能有多种情况发生,而实际只会发生一种,顺序结构就不能做这一类的选择。
选择控制
满足条件即执行,不满足则跳过。
if …
if 这个英文单词的中文意思是“如果”,在程序编写中,也就是如果…就…,
1 2 if expression: do some things 复制 expression 是一个表达式,这个表达式的结果为真(True),则执行 do somthing;如果为假(False),则跳过 do something 语句块。
if … else …
if 语句给出了满足条件之后应该做什么,而没有给出不满足条件应该做什么。所以,有衍生出了 else 语句,
1 2 3 4 if expression: do some things else: do some things 复制 if … else … 语句给出了如果 expression 表达式的结果为假(False)时,程序应该做什么事。
if … elif … else…
如果一个问题有多种可能的结果供选择,就需要使用 elif 语句,
1 2 3 4 5 6 7 if expression 1: do some things elif expression 2: do some things ... else: do some things 复制 该语句用于从众多可能的选项中挑选一个,也就是如果第一个表达式满足条件,其后的语句就会被执行,然后跳出整个结构,无论 elif 的表达式是否为真(即使以后的 elif 的表达式都为真,其后的语句也不会被执行)。只有在前面所有的表达式都为假时,才会执行 else 后的语句。
循环控制
如果满足条件则进入循环体,循环体执行完毕后,再次判断条件是否满足,如果满足则再次进入循环体,反之则执行循环体之后的语句。
while
while 循环通过一个条件来控制是否要反复执行循环体,
1 2 while expression: do some things 复制 expression 首次为真时,执行循环体,执行完毕之后再次计算 expression ,如果还为真则再次执行循环体;如果为假,则执行循环体之后的语句。
for
for 循环是一个依次从复执行的循环,通常用于枚举或遍历序列,以及迭代对象中的元素,
1 2 for iteration in objects: do some things 复制 iteration 是一个个从 objects 中取出的可迭代变量,即只要 iteration 存在于 objects 中,则执行循环体。
例如,我们要计算 1 到 100 的累加和,就可以使用 for 循环,
1 2 3 4 5 6 result = 0
for number in range(1, 101): result = number
print(result) 复制 其中,range() 函数可在一定范围内生成一系列连续的整数,
1 range(start, end, step) 复制 start 用于指定起始值,默认值为 0;end 用于指定结束的值;step 用于指定步长,即连续两个数之间的间隔(它们的差的绝对值),默认值为 1 。
在 Python 编程中,像 range() 这一类有起始值和结束值得函数,其取值范围都是 起始值 <= x < 结束值
当然了,上面的语句我们也可以使用 while 语句实现,
1 2 3 4 5 6 7 8 result = 0 number = 1
while number < 101: result = number number = 1
print(result) 复制 for 语句还可以来遍历序列,
1 2 3 4 list = ["hello", "python", 2019, 8, 1]
for item in list: print(item, end="t") 复制 嵌套
在一个选择(循环)控制语句中,还有若干个选择(循环)控制语句,被称为选择(循环)嵌套语句,理论上是可以无限嵌套的。
1 2 3 4 for i in range(1, 10): for j in range(1, i 1): print(str(j) "x" str(i) "=" str(j * i) "t", end="") print() 复制 跳转语句
break
break 语句可以终止当前的循环,一般结合 if 语句搭配使用,即在满足特定条件时跳出当前循环,继续执行循环之后的语句。
1 2 3 4 5 while expression: do some things
代码语言:javascript复制if condition:
break
复制 或者,
1 2 3 4 5 for iteration in objects: do some things
代码语言:javascript复制if condition:
break
复制 continue
continue 语句无法结束循环,只能跳出本次循环,提前执行下一次循环,
1 2 3 4 5 while expression: do some things
代码语言:javascript复制if condition:
continue
复制 或者,
1 2 3 4 5 for iteration in objects: do some things
代码语言:javascript复制if condition:
continue
复制 pass 语句
pass 语句没有实际作用,只起到占位的作用。例如,在 if 结构中,如果满足条件时就执行某系语句,而当还没有想好这些语句如何编写时,可以先使用 pass 占位,保证程序可以正常向下运行,待想好后在替换 pass 即可。