Python的流程控制可以分为三类:顺序结构,分支结构,循环结构
顺序结构
就是代码的执行顺序,Python代码的执行流程都是从上到下的执行顺序。如果中介执行的时候阻塞了,就不会继续往下执行,一直到阻塞结束会继续往下执行。
分支结构
分支结构简单的代码执行到某一处位置的时候进行选择判断,来绝对顶继续往下执行的方向。经常用到的分支结构就是if语句。if语句是一个简单的逻辑执行顺序,通过一个判断条件来选择代码的执行位置。
if语句的三种形式:
(1)if 形式
(2)if-else形式
(3)if-elif-else形式
1:条件式判断
if 表达式:
语句块
num = 100
if num > 50:
print(num)
100
2:非此即彼得选择
if 表达式:
语句块1
else:
语句块2
num = 100
if num > 120:
print(num)
else:
print("小于120")
小于120
3:elif个数不限制;else可以省略不写;所有的互斥选择中最多只能执行一个
if 表达式1:
语句块1
elif:
语句块2
...
else:
语句块n
if的嵌套
在一个if语句的语句块可以继续添加一个if语句。同理内部一样可以继续添加,但是鉴于逻辑顺序不好理顺,我们一般不会添加太深的层次。下面通过一个排序来简单的了解一下if的嵌套。下面一个if嵌套来判断输入一个数是不是3得倍数,是不是5的倍数。
num = int(input("please enter"))
if num % 3 == 0:
print(num, "是3的倍数", sep='')
if num % 5 == 0:
print(num, "是5的倍数", sep='')
else:
print(num, "不是3的倍数,也不是5的倍数")
please enter30
30是3的倍数
30是5的倍数
循环结构
当代码按照顺序执行的时候,执行到某一位置的时候进行条件判断,当满足条件时执行该语句的循环体,一直到不满足条件的时候跳过循环体继续往下执行代码。关于循环结构内置的是while和for两种,其中for可以用来进行循环逻辑,经常用到遍历某一容器,依次通过循环体来处理容器内元素。
while的形式和用法:
形式
while 循环条件:
循环体
i = 1
num = 0
while i <= 100:
num += i
if i == 100:
print(num)
i += 1
5050
用法:单个的循环周期为“循环条件-循环体”。循环流程:循环条件-循环体-循环条件-循环体...执行出口在循环条件,一旦循环条件不满足,跳出循环。关键字break:循环体中执行到该语句,直接跳出整个循环。continue:跳出本次循环继续下一个循环周期进行下一个循环。return:返回一个值,跳出整个循环。
for的形式和用法:
形式
for x in y:
循环体
# range(10),可以指定起始位 range(2,10)
# 保存了产生连续整数的算法,可以节约空间
# 可以进行遍历,可以进行转换,
for i in range(10):
print(i)
# 列表生成式
print([20 for i in range(1, 11)])
print([i for i in "abcdefg"])
print([i for i in range(1, 11) if i % 2 == 0])
0
1
2
3
4
5
6
7
8
9
[20, 20, 20, 20, 20, 20, 20, 20, 20, 20]
['a', 'b', 'c', 'd', 'e', 'f', 'g']
[2, 4, 6, 8, 10]
语法:也是一种循环结构,经常用于遍历可迭代对象。主要应用于遍历,列表,字典,元组,集合,也可以用来使用便利集合,但是因为集合本身的顺序就是乱的,所以便利的顺序也不固定,每一次便利的顺序都都不一定。
循环嵌套模式
同理在循环中也能够进行嵌套,while的循环体中可以插入while循环也可以插入for循环。在for循环中也是一样的道理,它的循环体中一样可以加入while循环for循环。
连个while循环打印一个有意思的图案:
i = 0
while i <= 10:
n = 0
while n <= i:
print('*', end=" ")
n += 1
i += 1
print()
*
* *
* * *
* * * *
* * * * *
* * * * * *
* * * * * * *
* * * * * * * *
* * * * * * * * *
* * * * * * * * * *
* * * * * * * * * * *
两个for循环嵌套实现列表的排序:
# 列表排序实现
# 选择排序
lt = [8, 3, 6, 9, 5, 2, 4, 1, 7]
n = len(lt)
for i in range(n-1):
for j in range(i, n):
if lt[i] < lt[j]:
lt[i], lt[j] = lt[j], lt[i]
print(lt)
[9, 8, 7, 6, 5, 4, 3, 2, 1]