python之流程控制

流程控制理论

什么是流程控制

流程控制其实就是控制事物的执行流程

执行流程的分类

顺序结构

顺序结构是最简单的程序结构,它是从上往下依次执行的。

分支结构

分支结构就是根据某些条件的判断做出不同的执行流程。

循环结构

循环结构就是根据某些条件的判断循环反复的做相同的事情,直到有一个循环结束的条件。

必知必会

  1. 在python当中,我们都是使用缩减来表示代码的从属关系,比如:

    if True:
        语句1
        语句2
    语句3
    

    这段代码中语句1和语句2都是附属于if语句的,语句3是与if同一级别的,我们也可以称语句1和语句2是if语句的子代码。

  2. 并不是所有的代码都可以有子代码的,如果一行代码的结尾是冒号结束,那么下一行必定是这行代码的子代码。

  3. 如果多行代码属于同一个父代码,那么这个多行代码需要保证相同的缩进。在python中推荐使用四个空格来表示缩进,或者是按Tab键来缩进。

  4. 具有相同缩进量的代码彼此之间按照顺序结构执行。

分支结构之if语句

单if分支

语法结构:

if 判断条件:
    执行语句
    ...

这段语法表示:当判断条件成立时,执行后面的语句。

举例:

# 如果age大于等于18,则打印“已成年”
if age >= 18:
    print('已成年')

if与else分支

语法结构:

if 判断条件:
    语句1
    ...
else:
    语句2
    ...

这段语法表示:当判断条件成立时,执行语句1,否则执行语句2。

举例:

# 如果age大于等于18,则打印“已成年”,否则打印“未成年”
if age >= 18:
    print('已成年')
else:
    print('未成年')

if与elif与else分支

语法结构:

if 条件1:
    语句1
    ...
elif 条件2:
    语句2
    ...
elif 条件3:
    语句3
    ...
else:
    语句4
    ...

这段代码表示:当满足条件1时,执行语句1;当不满足条件1,满足条件2时,执行语句2;当不满足条件1,且不满足条件2时,满足条件3时,执行语句3;当以上条件都不满足时,执行语句4。

举例:

# 年龄划分
if age < 18: # 如果年龄在18岁以下,打印“少年”
    print('少年')
elif age < 30: # 如果年龄在18岁及以上,30岁以下,打印“青年”
    print('青年')
elif age < 40: # 如果年龄在30岁及以上,40岁以下,打印“壮年”
    print('壮年')
elif age < 50 # 如果年龄在40岁及以上,50岁一下,打印“中年”
	print('中年')
else: # 如果不符合以上条件,则是50岁及以上的年龄,打印“老年”
    print('老年')

if的嵌套

其实在if的子代码当中,我们还可以再添加数个if代码分支,这个我们称为if的嵌套。

语法结构:

if 条件1:
    语句1
    if 条件2:
        语句2
        ...
    ...

举例:

# country表示国家,province表示省份
if country == "中国":# 如果国家是中国,则进入子代码
    if province == "上海":# 如果省份是上海,则打印内容
        print('他在中国,是上海人')
else:# 如果country不是中国,说明他是外国人
    print('他是外国人')

循环结构之while循环

语法结构:

while 判断条件:
    执行语句
    ...

这段代码表示:当判断条件为True时,执行子代码中的语句,子代码中的语句执行完后,再次判断条件是否为True,如果为True,则继续执行子代码;如果为False,则跳出while循环。

举例:

a = 0 # 给a赋值0
while a < 10: # 判断a是否小于10,小于10则进入循环,否则结束while循环
    print(a) # 每经过一次循环,打印a的值
    a += 1 # 每经过一次循环,a的值都会加1

while + else

else不仅能和if连用,它还能与while连用。

语法结构:

while 条件:
    循环体代码
    ...
else:
    代码块
    ...

注意:else中的代码块并不是一定会执行,只有在while循环正常结束的情况下才会执行else中的代码,如果使用break跳出while循环,则不会执行else中的代码。

举例:

# 不用break跳出循环时
num = 1
while num < 5:
    print(num)
    num += 1
else:
    print('while循环正常结束了!!')
'''
输出结果
1
2
3
4
while循环正常结束了!!
'''
# 用break跳出循环时
num = 1
while num < 5:
    if num == 3:
    	break
    print(num)
    num += 1
else:
    print('while循环正常结束了!!')
'''
输出结果
1
2
'''

死循环

死循环就是永远无法结束的循环,并且会一直占用CPU工作,极度的影响电脑的性能,甚至造成硬件的损坏。

举例:

# 死循环
i = 0
while i < 10:
	print('出不去了')
# 如果循环内的代码不会改变i的值
# 这个程序就会一直执行代码print('出不去了')

while的嵌套

while与if一样,可以在子代码中加入多个while循环。

举例:

# while的嵌套
i = j = 0
while i < 4:
    while j < 4:
        print('*', end='')  # 让输出在同一行
        j += 1  # 防止死循环
    print()  # 换行
    i += 1  # 防止死循环
    j = 0  # 让程序可以在进入小的while循环
'''
输出结果
****
****
****
****
'''

循环结构之for循环

语法结构:

for 变量名 in 可迭代对象:
    语句1
    ...

在for循环中,会遍历可迭代对象,按顺序把可迭代对象中的每一个值赋给变量名。

可迭代对象:字符串、列表、字典、元组、集合等....

举例:

# 案例1,遍历字符串
for s in 'abcde': # 遍历'abcd',拆分成'a', 'b', 'c', 'd'赋值给变量s
    print(s) # 打印s
'''
输出结果
a
b
c
d
'''
# 案例2,遍历列表
for l in [1, 2, 'a']: # 遍历[1, 2, 'a'],拆分成1, 2, 'a'赋值给变量l
    print(l) # 打印l
'''
输出结果
1
2
a
'''
# 案例3,遍历字典
for k in {'name':'tom', 'age': 18, 'sex':'男'}: # 遍历字典时只会将字典中的key赋值给变量名,也就是'name', 'age', 'sex'赋值给变量k
    print(k) # 打印k
'''
输出结果
name
age
sex
'''
# 案例4,range函数
for i in range(4): # range(4)可以把他看作是列表[0, 1, 2, 3],或者[0,4)的整数
    print(i)
'''
输出结果
0
1
2
3
'''

range函数

range函数在python2和python3中有所区别

  • python2中range是直接生成一个列表,元素很多的情况下比较占用空间
  • python3中range相当于是哆啦A梦的口袋一样,不占空间但是可以取出很多数据。

range函数主要用于生成一个整型的数据集。

举例:

# range函数中只有单个数字,取值范围为0<=i<4的整数
for i in range(4):
    print(i)
'''
输出结果
0
1
2
3
'''
# range函数中有两个数字,取值范围为1<=i<4的整数
for i in range(1,4):
    print(i)
'''
1
2
3
'''
# range函数中有三个数字,前两个代表范围,第三个代表从起始位开始,每次增加的数值
for i in range(1, 6, 2):
    print(i)
'''
1
3
5
'''

break与continue与else

这三个关键字的用法在for循环中与在while循环中一致。

for循环的嵌套

while和if都能嵌套,for循环当然也可以。

举例:

# 输出3*3的星号矩阵
for i in range(4):  # i取值0<=i<4
    for j in range(4):  # j取值0<=j<4
        print('*', end='')
    print()  # 换行
'''
输出结果
***
***
***
'''

break与continue

break的应用

break主要用于直接结束本层循环。

举例:

a = 1
while True: # 整个死循环
    print(a) # 打印a的值
    if a == 4: # 当a的值为4时,跳出while循环
        break # 跳出本层循环
    a += 1 # 每次循环a的值加1
'''
输出结果
1
2
3
4
'''

continue的应用

break主要用于结束当前这次的循环,直接进入下一次循环。

举例:

# 只输出偶数
a = 0
while a < 10: # 当a < 10时,进入循环
    if a % 2 == 0: # 当a除2余数为0时,说明是偶数
        a += 1 # a加1
        continue # 跳过下面的语句,直接进入下一次循环
    a += 1 # a加1
    print(a) # 打印a
'''
输出结果
2
4
6
8
10
'''
posted @ 2022-03-07 18:45  Yume_Minami  阅读(56)  评论(0编辑  收藏  举报