今天要学习的是Python的控制流,控制流就是控制代码执行的流程,就是if、else、循环什么的啦
1.顺序控制流
if 条件1:
代码块1
else:
代码块2顺序控制就是if else语句,如果满足条件1,则输出代码块1,否则输出代码块2;
真值表: 一般来说,0、"" 空字符串、() 空元组、[] 空列表、{} 空字典、None 等空值的都为 False;而像1、"Str" 字符串等有值的都为 True;
2.分支控制流
if 条件1:
代码块1
elif 条件2:
代码块2
elif 条件3:
代码块3
else:
代码块4分支控制流,就是除了 if 和 else 以外,再加上不定量的 elif,执行顺序是自上而下,哪个满足条件则执行哪个代码块;
3.嵌套控制流
if 条件1:
代码块1
elif 条件2:
if 条件2.1:
代码块2.1
elif 条件2.2:
代码块2.2
else:
代码块2.3
elif 条件3 :
代码块3
else:
不满足以上所有条件的代码块嵌套控制流是在分支控制流基础上,再嵌套新的控制流,执行顺序同分支控制流相同,自上而下满足条件则执行;
4.循环控制流
(1)while循环
a = 1
while a < 3:
print('yes')
a += 1第一次循环满足 while 循环的条件 a < 3 时,则开始循环,依次执行语句输出yes;
第二次循环如果还满足循环条件,则继续依次执行语句输出yes;
一直到循环不满足条件时,循环终止,不再执行输出语句;
所以一共输出连两个yes;
(2)while else循环
例子1:
a = 1
while a < 3:
print('yes')
a+= 1
else:
print('结束!')
例子2:
a = 1
while a < 3:
print('yes')
a += 1
if a == 2:
break
else:
print('结束!')如果如例子1一样循环是正常终止的(即没有 break语句),到最后一次循环完毕后,会接着执行一次else中的语句,所以输出结果是:两个‘yes’,一个‘结束’;
如果如例子2循环里面一样加上了 if 和 break 时,则只要满足 if 条件就会直接终止循环,不再执行任何语句,所以输出结果是:一个‘yes’;
(3)for循环
for i in range(10):
print(i)
#输出:0 1 2 3 4 5 6 7 8 9当满足循环条件时,则循环一直执行,直到不满足时会退出循环;
注:range函数是一个可迭代对象,比如 range (10)会生成从0到9区间( 即[0,9]或[0,10) )的所有整数;
(4)for else循环
i = None
for i in range(10):
print(i)
else:
print(i)
#输出结果:0 1 2 3 4 5 6 7 8 9 9for else 循环和 while else 循环有点类似,如果是正常退出的循环,当执行完 for 循环的最后一次循环时,会接着执行一次else 里面的语句;
(5)continue 语句
# 例子1
for i in range(1,11):
if i % 2:
print(i) #输出:1 3 5 7 9
# 例子2
for i in range(1,11):
if i % 2:
continue
print(i) #输出:2 4 6 8 10
比较上面两个例子可以看出,使用了 continue 关键字的循环,当 if 条件为真的时候,会执行 continue,也就是直接进行下一次新的循环,continue 后面的语句不会再继续执行;
if 条件为假的时候情况正好相反,continue 不会执行,而是执行 continue 后面的语句;
(注:range 类的使用,range(start,stop[,step]) -> range object。如果直接输出 range,会实现一个魔术方法,str()或者 repr()方法,返回自己本身。如果想打印 range 里面的内容,可以把 range 包装成列表list的形式;)
(6)break 语句
a= 0
for i in range(1,100):
if i % 3:
print(i)
a+= 1
if a>= 5:
break
#输出: 1 2 4 5 7
在有break的循环中,如果条件为真的时候,会执行 break,也就是直接跳出整个循环;
条件为假时,不会执行 break,而是执行 break 后面的语句;
需要注意:在 Python 中,continue 和 break 只能影响当前所在的这一层循环,如果是在内部循环中进行 continue 和 break,那么外层循环不会受到影响;