文章目录
前言
本节内容讲解流程控制的三种方式:顺序,分支,循环
一、顺序结构
顺序结构就是从上到下一行一行的执行,中间没有任何跳转和判断,是流程控制中最简单的类型。
二、分支结构
1.if分支结构的几种形式
if分支使用布尔表达式或者布尔值作为分支条件来进行分支控制,具体有以下几种形式
?(1) 第一种
if expression:
statements...
(2)第二种
if expression:
statements...
else:
statements...
(3)第三种
if expression:
statements...
elif:
statements...
... //可以有多条elif
else:
statements
在上面的三种形式中,若if后的语句为真(这里的真假值参考我们之前在基本对象中提到过的布尔值的判断标准),则执行,否则进行下一个判断。
需要注意的是,Python中是通过缩进来标记代码块的,有相同缩进的多行代码会被认为是一个代码块,所以我们不能随便缩进,也不能忘记缩进,特别的,在if条件分支中每个判断条件后是有分号的,不要忘记写。
注:在使用if进行条件判断时,一定要先处理包含范围更小的情形。如果不明白可以回想下小学的时候老师根据成绩评价学生优秀,良好和差。
2、pass
某条件成立时,程序暂时不想处理或者不知道如何处理,可以使用pass实现占位的目的,若没有pass只写if语句会报错。
三、循环结构
循环语句是在满足循环条件的情况下,反复执行某一段代码,这段重复执行的代码被称为循环体,而当反复执行此循环时,需要在合适的时候将循环条件改为假而终止循环,否则循环会一直执行,成为死循环。
1、while循环
[init expression]
while test_expression:
body_statements //循环体
[iteration_expression] //迭代语句
while循环遍历列表和元组(以元组为例)
a = ('a','b','c')
i=0
while i<len(a):
print(a[i])
i=i+1
'''
输出结果为
a
b
c
'''
2、for - in循环
此循环用于遍历范围,列表,元素等可迭代对象包含的元素,格式如下
for 变量 in 字符串/范围/集合等:
statements
上面的变量每次会被重新赋值,所以不要在statements里对变量进行赋值
b = [1,2,3,4]
for i in b:
print(i)
'''
输出
1
2
3
4
'''
2.1 for-in 循环遍历列表和元组
以列表为例,元组同理?
t = [11,22,33,44]
for i in range(0,len(t)):
print(i)
'''
输出结果
11
22
33
44
'''
2.2、for-in循环遍历字典
还记得我们上节介绍字典时的几个方法吗?遍历字典少不了它们
items():返回所有key-value的列表
keys():返回所有key的列表
values():返回所有value的列表
# 通过获得键值对来获取值
dict1 = dict{'语文':90,'英语':86,'数学':90,'政治':80}
for key,value in dict1.items():
print('key:',key)
print('value:',value)
# 通过获取key来获取value
for key in dict1.keys():
print('key:',key)
print('value:',dict[key])
# 直接获取value
for value in dict1.values():
print('value:',value)
2.3、for表达式
[表达式 for 循环计数器 in 可迭代对象]
?for表达式没有循环体,所以不需要冒号,事实上,表达式中通常含有循环计数器,经过循环,是每次对不同的值进行相同的表达式操作,举个栗子
a = [1,2,3,4]
a_list = [i*i for i in a]
print(a_list) # 输出[1,4,9,16]
上述形式后也可以加if条件,用来筛选符合标准的值
a = [1,2,3,4]
a_list = [i*i for i in a if i%2==0]
print(a_list) # 输出[4,16]
for表达式还可以嵌套多个循环
a = [1,2,3,4]
a_list = [(i,j) for i in a for j in range(1,3)]
print(a_list) # 输出[(1,1),(1,2),(2,2),(2,4),(3,3),(3,6),(4,4),(4,8)]
'''
事实上,a_list = [(i,j) for i in a for j in range(1,3)]
for i in a:
for j in range(1,3):
a_list.append((i,j))
'''
3、控制循环
3.1?continue
continue只忽略本次循环的剩下语句,若没有达到循环终止条件,会继续执行下次循环,因此把continue放在循环末尾是无意义的
3.2?break
break用于完全结束它所在的循环,跳出循环体,强制终止循环并执行循环后的代码,而且若循环中有else也不会执行else
3.3 return
return结束一个函数或方法,不管它在多少层循环里
这么来看,上述三个办法的权力从小到大逐个增加
总结
本文讲解了流程控制的三种方式,有很多细节值得深思,希望大家不要觉得简答就一扫而过。
|