Day6:Python控制流

今天要学习的是控制流,简单来说就是控制代码执行的流程;

1.顺序控制流

基本语法:

if 条件:
    代码块1
else:
    代码块2
  • 使用顺序控制流的时候,首先我们需要判断 if条件的真假,真则输出代码块1,否则输出代码块2;
  • 而这时需要用到真值表; 一般来说,0"" 空字符串、() 空元组、[] 空列表、{} 空字典、None 等空值的都为 False;而像1"Str" 字符串等有值的都为 True;

2.分支控制流

基本语法:

if 条件1:
	代码块1
elif 条件2:
	代码块2
else:
	代码块3
  • 分支控制流,就是除了 ifelse 以外,再加上不定量的 elif,执行顺序是自上而下,满足条件则执行
  • 如上例子中,就是满足哪个条件语句,输出哪个条件下面的代码块;

3.嵌套控制流

基本语法:

if 条件1:
	代码块1
elif 条件2:
    if 条件2.1:
        代码块2.1
    else:
        代码块2.2
else:
	代码块3
  • 嵌套控制流是在分支控制流基础上,再嵌套新的控制流,如上述例子所示,在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 中,continuebreak 只能影响当前所在的这一层循环,如果是在内部循环中进行 continuebreak,那么外层循环不会受到影响;

本文参考自侠课岛(9xkd.com)Python同学计划

猜你喜欢

转载自blog.csdn.net/ivenqin/article/details/86543870