三,程序流程控制之顺序结构、分支结构与循环结构
程序结构
程序的执行顺序是通过一些流程结构来控制的
程序的运行是通过计算机一行一行的执行代码来完成的,按顺序一条条执行是程序最基本的结构,但是有时候顺序执行不能完成所有的功能。计算机中有三大基本结构:
顺序结构
分支结构
循环结构
1,顺序结构
顺序结构是程序的基本结构,它会从上往下依次执行
2,分支结构
分支结构是程序根据条件结果来判断,从而选择不同的代码向前执行的一种方式,也叫条件分支
分支结构包括:单分支、二分支和多分支
2.1单分支
在Python中单分支通过if语句来实现
if <条件>:
代码块
注意条件表达式后面要紧跟冒号
代码块为一行或多行代码
代码块前要有缩进,跟if形成包含关系
标准缩进为TAB键或者四个空格
执行标准:
当条件表达式结果为True时,则执行代码块的代码,为False时,则跳过代码块
if中包含的代码块执行依赖于条件表达式的结果,但是无论是否执行都会继续往下执行与if同级的下一条代码
2.2二分支
二分支结构用if else 来实现
if <条件>:
代码块1
else:
代码块2
代码块1是在条件结果为True时执行的一条或多条代码,代码块2是条件为False执行的一条或多条代码
注意else与if同级,并紧跟冒号
代码块2前也必须有缩进,跟else形成包含关系
二分支用于区分条件的两种可能性,分别形成执行路径
三目运算
二分支有一种更简洁的表达方式,语法格式如下:
<表达式1> if <条件> else <表达式2>
当条件结果为True时执行表达式1,为False时,执行表达式2
适合代码块为1行代码时,这种表达方式也叫三目运算,用于简单的条件判断
2.3多分支
多分支通过if-elif-else来表达,语法格式如下
if <条件1>:
代码块1
elif <条件2>:
代码块2
...
else:
代码块3
多分支为二分支的延伸,用于多个条件多个执行路径的情况。计算机依次执行条件判断,寻找第一个结果为True的条件,然后执行该条件下的代码块,结束后跳过整个if-elif-else多分支结构,执行下面的代码。若没有条件为True,则执行else下的代码块,并且else是可选的,即可以没有else语句
3,循环结构
3.1条件循环
Python中条件循环用while来实现,也叫while循环,语法格式如下
while <条件>:
代码块
while空格后跟条件表达式,紧跟冒号,代码块前需要有缩进,跟while形成包含关系
先执行条件表达式,当结果为True时则执行代码块内容,然后继续循环回去执行条件表达式,若为True,则又执行代码块,直到条件结果为False时,停止循环
当条件结果恒为True时,形成无线循环,也叫死循环,需要小心使用
3.2遍历循环
Python中遍历循环用for来实现,也叫for循环,迭代循环,语法格式如下
for <循环变量> in <遍历结构>:
代码块
关键字for+空格+循环变量+空格+变量in+空格+遍历结构冒号,代码块前加缩进,与for形成包含关系
for循环会依次取出遍历结构中的每一个元素,然后把它赋值给循环变量,然后执行代码块,每次遍历都会执行代码块,直到取完遍历结构中的每一个元素
所有可迭代对象都可以作为遍历结果进行for循环
基本数据类型中的序列数据类型和散列数据类型都可以进行迭代
迭代器iterator
迭代器是一个可以记住遍历位置的对象。for循环本质上就是通过迭代器来实现的。
通过内建函数iter可以创建迭代器。iter('abc')
不是所有数据类型都可以创建迭代器,凡是能创建的,被称为可迭代对象,反之则是不可迭代对象。
range函数
内建函数range可以创建输出整数序列的迭代器。
range(start,stop,step)
range(a,b)生成a,a+1,a+2...b-1,start默认为0当给定step时,它指定增长步长
for循环经常跟range搭配使用,限定循环次数
for i in range(10):
代码块
循环十次
3.3循环控制关键字
break 跳出当前循环
continue 跳出本次循环
else关键字
else可以搭配循环结构使用,来检测循环是正常结束还是break掉了
for i in range(10):
if i %2 == 0:
continue
print(i)
else:
print("循环正常结束")
结果为0 2 4 6 8 循环正常结束
for i in range(10):
if i %2 == 0:
break
print(i)
else:
print("循环正常结束")
结果为0
当循环正常结束时,则执行else下的代码,否则不执行