我的Python入门笔记(11)

八章、流程控制——条件语句


Now is better than never.——The Zen of Python


   流程控制对任何一门编程语言来说都是非常重要的,因为其提供了控制程序如何执行的方法。

一、程序结构

  计算机在解决某个具体问题时,主要有三种情形,分别是顺序执行所有的语句,选择执行这部分语句,以及循环执行这三种语句。这对应程序设计中的三种基本结构:顺序结构,选择结构,循环结构。这三种结构的执行流程如图所示:

  其中第一张图,是顺序结构的流程图,编写完毕的语句按照编写的顺序依次执行;第二幅图是选择结构的流程图,它主要根据条件语句的结果选择执行不同的语句;第三幅图是循环结构的流程图,它是在一定条件下反复执行某段程序的流程结构,其中被反复执行的语句称为循环体,决定循环是否终止的判断条件称为循环条件。

二、选择语句

  程序中的选择语句,也称为条件语句,即按照条件选择执行不同的代码片段。在Python中选择语句主要有三种形式,分别是If语句、if...esle语句和if...elif...else多分枝语句,在其他语言中,选择语句还包括switch语句,也可以实现多重选择。但是,在Python中,却没有switch语句,所以实现多重选择功能时,只能使用if...elif..else多分枝语句或者if语句的嵌套。

  1.最简单的If语句

  在Python中使用if保留字来组成选择语句,其最简单的语法格式如下:  

 if 表达式:
     语句块

  其中,表达式可以是一个单纯的布尔值或者变量,也可以是比较表达式或者逻辑表达式,如果表达式为真,则执行“语句块”,如果表达式为假,就跳过“语句块”,继续执行后面的语句,这种形式的If语句就相当于汉语中的关联词语“如果...就...”.在使用If语句时,如果只有一条语句,语句块可以直接写到“:”的右侧,但是,一般为了程序的可读性,不建议这样做。

1 a,b=284,220
2 if a>b:
3     print(a)
4 输出:
5 284

  2. If···else语句

  Python中提供了if···else语句,用来解决二选一这种问题,其语法格式如下:

    if 表达式:
        语句块1
    else:
        语句块2

  使用if···else语句时,表达式可以是一个单纯的布尔值或变量,也可以是比较表达式或者逻辑表达式,如果满足条件,则执行if后面的语句块,否则,执行else后面的语句块,这种形式的选择语句相当于汉语里的关联词“如果···否则···”

1 ID=int(input("请输入你的ID号码:"))
2 if ID ==220284:
3     print(ID,"你的ID是正确的,可以进入")
4 else:
5     print(ID,'你的ID输入有问题')
6 输出:
7 请输入你的ID号码:220284
8 220284 你的ID是正确的,可以进入

  在使用if···else语句时可以使用条件 表达式进行简化:

1 a=-9
2 if a>0:
3     b=a
4 else:
5     b=-a
6 print(b)
7 输出:
8 9

  可以将其简写成:

a=-9
b = a if a>0 else -a
print(b)
输出:
9

  使用条件表达式的好处是可以使代码简洁,并且有一个返回值.

  3.if···elif···else语句

  该语句时一个多分枝选择语句,通常表现为“如果满足某种条件,进行某种处理,否则,如果满足另一种条件,则执行另一种处理·······”其语法格式如下:

if 表达式1:
    语句块1
elif 表达式2
    语句块2
·······
else:
    语句块n

  在使用if···elif···else语句时,表达式可以是一个单纯的布尔值或变量,也可以是比较表达式或逻辑表达式,如果表达式为真,执行语句;而如果表达式为假,则跳过该语句,进行下一个elif判断,只有在所有表达式都为假的情况下,才会执行else中的语句,执行流程及示例代码如下:

 1 num = int(input("请输入这个月的销量:"))
 2 if num >=1000:
 3     print("本产品的销量为A!!")
 4 elif num >+500:
 5     print("本产品的销量为B!!")
 6 else:
 7     print("本产品销量为C")
 8 输出:
 9 请输入这个月的销量:562
10 本产品的销量为B!!

   if和elif都需要判断表达式的真假,而else则不需要判断;另外,elif和else都必须跟if一起使用.不能单独使用。

  4.if语句的嵌套

  前面介绍了三种形式的if语句,这三种形式的选择语句之间都可以进行相互嵌套。在最简单的if语句中嵌套if···else语句,形式如下: 

if 表达式1:
    if 表达式2:
        语句块1
    else:
        语句块2

  在if···else语句中嵌套if···else语句,形式如下:

if 表达式1:
    if 表达式2:
        语句块1
    else:
        语句块2
else:
    if 表达式3
        语句块3
    else:
        语句块4

  if选择语句可以有多种嵌套方式,开发程序时可以根据自身需要选择合适的嵌套方式,但是一定要严格控制好不同级别代码块的缩进量。

  5.使用and连接条件语句

  在实际工作中,经常会遇到需要同时满足两个或两个以上的条件才能执行if后面的语句块,如图所示:

  and是Python的逻辑运算符,可以使用and在条件中进行多个条件内容的判断。只有同时满足多个条件,才能执行if后面的语句块。示例如下:

1 """
2 年龄在18周岁以上70周岁以下,可以申请小型汽车驾驶证
3 """
4 age = int(input("请输入你的年龄:"))
5 if age>18 and age<70:
6     print("您可以申请小型汽车驾驶证")
7 输出:
8 请输入你的年龄:23
9 您可以申请小型汽车驾驶证

 

  此外,也可以不使用and语句,只用if语句嵌套,也可以实现上面效果。当输入不符合条件的数时,程序没有任何反应。

  6.使用or连接条件语句

  有时,会遇到只需要两个或者两个以上条件之一,就能执行if后面的语句块,这时可以使用or连接条件语句。or是Python的逻辑运算符,可以使用or在条件中进行多个条件内容的判读,只要满足一个条件,就可以执行if后面的语句块。示例如下: 

1 sales= int(input("请输入商品的日销量:"))
2 if sales<10 or sales>100:
3     print("该商品为重点关注商品")
4 输出:
5 请输入商品的日销量:220
6 该商品为重点关注商品

  不使用or语句,只用两个简单的if语句,也可以实现上面的效果。

  7.使用not语句

  在实际开发中,可能面临如下情况:在密码输入中,输入非数字键均认为非法输入。所以在开发中可以使用not语句来进行上面程序的判断。not为逻辑判断词,用于布尔型True和False。not与逻辑判断句if连用,代表not后面表达式为false的时候,执行冒号后面的语句。示例如下:

1 data = None           #代码为给data赋值,所以data为空值
2 if not data:
3     print("你输了")
4 else:
5     print("你赢了")
6 输出:
7 你输了

  在Python中False、None、空字符串、空列表、空字典、空元组都相当于False.

  "if x not None"是最好的写法,不仅清晰,而且不会出错。如果使用“if not x”这种写法的前提:必须清楚x等于False、None、空字符串、空列表、空字典、空元组时,对判断没有影响才行。

  在Python中,要判断特定的值是否存在于列表中,可以使用关键字in判断特定的值不存在在列表中,可以使用not in.示例如下:密码输入中,输入的非数字键均认为非法输入。

1 a = input("请输入1位数字密码:")
2 b=['0','1','2','3','4','5','6','7','8','9']
3 if a not in b:
4     print("非法输入")
5 输出:
6 非法输入
posted @ 2019-06-30 16:17  雨霓同学  阅读(505)  评论(0编辑  收藏  举报