python流程结构

控制流程

一、流程概述

所谓的流程,即程序执行的过程。之前我们接触的程序,都是按部就班,自顶而下的去执行的,我们称这种程序结构为顺序结构。

程序的三种结构:

  • 顺序结构
  • 选择结构
  • 循环结构

二、 选择结构

1. if

缩进的语法

缩进大小随意,但是要保持一致。按照惯例,使用4个空格。

2. if-else

提供两条分支。

3. if-elif

注意多选择分支时,分支顺序的重要性。【分两种情况】

例如:输入学生的成绩,根据成绩输出对应的等级。

4. if-elif-else

为最后一条分支

5. if-else简化版

if-else简化版类似于其他语言中的三元运算符。格式如下:

表达式1 if 条件表达式 else 表达式2

其中,条件表达式执行条件判断,如果条件表达式的值为True,则返回表达式1的值,否则返回表达式2的值。

例如:输入数值,代表星期(1 - 7),如果是1 - 5,则输出“工作日”,如果是6或7,则输出“休息日”,否则输出“错误,请重新输入”。

a=int(input("输入周几:"))
if 1<=a<=5:
    print("工作日")
elif 6<=a<=7:
    print("休息日")
else:
    print("错误,请重新输入",a)

6. if嵌套

if是可以进行嵌套使用的,用来多层选择分支的判断。

性别:男-》开发组,女-》测试组

开发:经验大于5年(开发经理),否则(开发组员)。

测试:有过开发经验(白盒),否则(黑盒)

a = input("请输入性别:")
if a=="男":
    b = int(input("请输入工作时间:"))
    if b >= 5:
        print("开发经理")
    else:
        print("开发组员")
if a=="女":
    c = input("有无开发经验?(y/n)")
    if c=="y":
        print("白盒测试")
    else:
        print("黑盒测试")

7. 断言

断言,即断定某些语句是否正确。通过断言,我们可以为应用程序加入调试信息,从而检测程序关键点位置的准确性。

断言使用assert关键字,语法格式为:

assert 表达式

或:

assert 表达式,错误信息

在执行断言语句时,会对表达式1进行求值,如果该值转换为布尔类型后为False,则会产生错误信息。其中,第二种形式的错误信息是可选的,如果给出错误信息,则会在表达式为False的时候,输出我们指定的错误信息。

断言的作用

也会大家会感觉到异或,断言有什么用处呢?这种判断方式,我们完全可以自行通过if语句来实现啊,那又为什么要使用断言呢?的确,断言底层其实就是通过if语句判断与异常(我们后续课程会讲解)来实现的,例如:

assert height > 0

就相当于:

if not height > 0:

抛出异常

而第二种形式:

assert height > 0, “身高必须大于0”

就相当于:

   if not height > 0:

抛出异常信息(“身高必须大于0”)

三、 循环结构

循环就是重复性的执行一件相同或相似的事情(执行多次)。

1. while

while 条件:
循环体

2. for

range函数,对可迭代对象中的每一个值赋值给in前面的变量,然后执行一次循环体。注意range函数三个参数的使用。

将求和与阶乘的程序使用for循环改写。

3. 循环嵌套

循环嵌套,是指外层循环的内部,还有内层循环,即内层循环作为外层循环的循环体。当循环嵌套时,外层循环每执行一次,内层循环都会完整的执行一轮。如果外层循环会执行m次,内层循环会执行n次,则总共会执行m * n次。

打印*图形。

4. break与else

break只能用在循环中。

else可以跟随在for或while循环之后,当循环正常执行完毕,会执行else语句,如果循环非正常执行完毕,而是通过break跳出循环,则else语句块不会得到执行。else语句是可选的。

5. continue

continue只能用在循环语句中。
break与continue基本只会用在选择判断中。无条件的break与continue虽然语法上没有错误,但从实际的角度来说是没有意义的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值