1.顺序控制流
基本语法:
if 条件:
代码块1
else:
代码块2
- 使用顺序控制流的时候,首先我们需要判断
if条件的真假,真则输出代码块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
- 嵌套控制流是在分支控制流基础上,再嵌套新的控制流,如上述例子所示,在
elif条件2下面在嵌套一个新的if控制流; - 且嵌套控制流的执行顺序同分支控制流相同,自上而下满足条件则执行相应代码块;
4.循环控制流
(1)while循环
例:
a = 5
while a > 1:
print('yes')
a -= 1
- 第一次循环满足
while循环a > 1的条件时,则开始循环,执行print语句输出yes; - 第二次循环如果还满足循环条件,则继续print执行语句输出yes;
- 一直到循环不满足条件时(即 a 不再大于 1),循环终止,不再执行;
- 所以最终结果是输出四个yes;
(2)while else循环
例1:
a = 5
while a > 1:
print('yes')
a -= 1
else:
print('循环结束')
例2:
a = 5
while a > 1:
print('yes')
a -= 1
if a == 2:
break
else:
print('循环结束!')
-
while else循环和while循环不同的地方在于,如果是正常终止的循环,也就是像例1一样的没有 break的循环,最后一次循环完毕后,不仅会输出4个yes,还会接着执行else中的语句,输出“循环结束”; - 如果是像例2一样在循环里面加上了一个新的
if条件 和break语句时,则只要满足了if条件循环就会直接终止,不再执行任何语句,也就是跳出循环;
(3)for循环
例:
for i in range(5):
print(i)
- for循环里面当满足
if循环条件时,则循环一直执行,不满足则退出; - 上述循环输出答案为
0,1,2,3,4; - 注:
range函数是一个可迭代对象,比如上述range(5)会生成从0到5区间( 即[0,9]或[0,10) )的所有整数,range就像数学中的区间 一样,左边是闭区间,右边是开区间;
(4)for else循环
例:
i = None
for i in range(5):
print(i)
else:
print(i)
-
for else循环和while else循环有点类似,如果是正常退出的,当执行完for循环的最后一次循环时,会接着循环else里面的语句,如上述例子中,在输出了1,2,3,4之后会继续执行else中的语句,此时i = 4 ,所以会继续输出一个4; - 而如果在for循环里面加了break,那么只要满足break的条件,循环就会终止;
(5)continue 语句
例:
#方法一
for i in range(1,11):
if i % 2:
print(i)
#方法二
for i in range(1,11):
if i % 2:
continue
print(i)
- 循环中如果使用了
continue关键字,当条件为真的时候,会执行continue,直接进行下一次新的循环,不会再继续执行continue后面的语句; - 条件为假的时候情况正好相反,
continue不会执行,而是会执行continue后面的语句; - 所以上述例1输出:
1,3,5,7,9,例2正好相反,输出:2,4,6,8,10; - 注:
range类的使用,range(start,stop[,step]) -> range object。如果直接输出range,会实现一个魔术方法,str()或者repr()方法,返回自己本身。如果想打印range里面的内容,可以把range包装成列表list的形式;
(6)break 语句
例:
flag = 0
for i in range(1,100):
if i % 3:
print(i)
flag += 1
if flag >= 5:
break
-
break关键字和continue有点不同,如果条件为真的时候,会执行break,直接跳出循环; - 条件为假时,不会执行
break,而是执行break后面的语句; - 所以上述例子中会输出:
1,2,4,5,7 - 注意:在 Python 中,
continue和break只能影响当前所在的这一层循环,如果是在内部循环中进行continue和break,那么外层循环不会受到影响;