zoukankan      html  css  js  c++  java
  • 我的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 非法输入
  • 相关阅读:
    C++11常用特性的使用经验总结
    Websocket协议的学习、调研和实现
    高性能后台服务器架构设计
    Linux下ping命令、traceroute命令、tracert命令的使用
    docker-4-Dockerfile配置文件详解
    Docker 国内仓库和镜像
    centos7.0查看IP
    tomcat报错:This is very likely to create a memory leak问题解决
    windows 环境下搭建docker私有仓库
    Docker 修改镜像源地址
  • 原文地址:https://www.cnblogs.com/1210x1184/p/11109658.html
Copyright © 2011-2022 走看看