Python的学习总结(二)——流程控制

122 阅读3分钟

Python的学习总结(二)——流程控制

条件分支

if-else结构

语法:

  1. if 布尔表达式:

                代码
    
  2. if 布尔表达式:

                代码 
    

    else:

                代码 
    
  3. if 布尔表达式:

                代码 
    

    elif 布尔表达式:

                代码 
    

    ... ... else:

                代码 
    

注意:

  1. if语句不会影响和自己平级的其他结构

  2. if和else中的代码不可能同时发生

代码块:

  1. 书写代码的块级结构

  2. python中用冒号和缩进来表示代码块

  3. 其他语言中:{}来表示代码块

嵌套使用

if-elif-else结构中中,可以在任意一个代码块中嵌套if结构(三种中任意一种都可以)

score = int(input('请输入你的分数:'))
if score >=0 and score <= 100:
    if score < 60:
        print('不及格')
    elif score < 70:
        print('及格')
    elif score < 80:
        print('普通')
    elif score < 90:
        print('良好')
    else:
        print('优秀')
else:
    print('超出范围')

else悬挂问题

tips: if或者else里面定义的内容,会泄露到上一级结构中

  1. C语言中if语句会和最近的else组成一个整体

    有可能当前结构并不属于该if结构---称之为else悬挂问题

  2. python可以很好地规避else悬挂问题

    ** 依靠严格的缩进**

断言

assert:是一个关键字

含义:判断assert之后的布尔表达式是否为真,如果为真则正常执行程序,如果为假,立刻终止程序并且抛出异常(AssertionError)

语法:

a = 1
b = 2
assert a < b
print('......')

循环流程

while循环

循环:重复执行代码

语法:

while 布尔表达式:

               代码(循环体) 

注意: 控制while后面的布尔表达式,可能会出现死循环,也可能出现正常终止

死循环:无限循环

合理的控制循环条件:

while True

while 1

python2:

  1. True是一个保留字,可以被修改

  2. 每次执行while True的时候会对True的值进行校验

  3. while 1的执行效率更高

python3:

  1. True是一个关键字,是不可变的

  2. 执行while True的时候不需要进行校验

  3. while True 与 while 1的效率是一致的

for循环

也称为计数循环

**可迭代对象:是指拥有迭代器的对象 **

**迭代器:是一个特殊的可迭代对象 **

可迭代对象:str、list、tuple 类似于这样的数据,我们称为可迭代对象

语法:

for 变量 in 可迭代对象:

               代码(循环体) 

range

是一个对象

**range的参数必须是整型 **

  1. range(stop)

    返回一个range对象

    start:默认为从0开始

    stop:结束的值(不包括该值本身)

  2. range(start, stop[, step])

    返回一个range对象

    start:开始的值(包括该值本身)

    stop:结束的值(不包括该值本身)

    step:步长(可以是正数也可以是负数)

  3. range对象是一个可迭代对象

补充

知道循环次数:for循环

不知道循环次数但是知道循环条件:while循环

break

跳出本层循环,之后的循环不再执行

continue

跳出本次循环,之后的循环不影响

循环嵌套

多个循环之间,可以任意嵌套使用

  1. while里面套while

  2. while里面套for

  3. for里面套while

  4. for里面套for

九九乘法表

for a in range(1,10):
    for b in range(1,a+1):
        print('{0}*{1}={2}'.format(b,a,a*b),end=' ')
    print()

QQ图片20220904101007.png