• 1.9 if语句(Python)


    本文来自异想之旅公开发布的Python教程,原文地址:https://www.yuque.com/yxzl/python

    在开始前,请先记住两个英语单词:if,如果;else,否则

    if是 Python 中用于逻辑判断的条件语句,用来判断一个事情为真或假,再根据不同情况执行不同语句。

    我们可以从下图中知道 if 的基本运行逻辑:

    在这里插入图片描述

    if

    a = 1
    b = 2
    
    if a >= b:
        print('a')
    if b > a:
        print('b')
    
    # 输出:b
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    第 4~7 行翻译成人话干了这么两件事:

    • 如果 a 的数值大于等于 b 的数值,那么输出 a
    • 如果 b 的数值大于 a 的数值,那么输出 b

    理解了它在干什么我们就来看语句结构:

    if 条件表达式:
        分支语句
    
    • 1
    • 2

    我们一个一个来看:

    • if:语句的核心不说了
    • 条件表达式:一个布尔类型的值(若果不是,会强制转换成布尔),通常为一个逻辑运算表达式,可以参考 1.8 章节的内容
    • 冒号:很重要,不能丢
    • 缩进:通常为 4 个空格,很重要,不能丢
    • 分支语句:当条件表达式成立时会执行的语句

    缩进,用于区分“分支语句”和“非分支语句”——试想如果没有缩进,我该怎么区分第 2 行和第 3 行哪个是第 1 行的条件表达式成立才执行的,哪个是始终执行的?

    if a != 0:
        print(a * 2)
    print(a)
    
    • 1
    • 2
    • 3

    现在能理解缩进的重要性了嘛~

    针对有其它编程语言基础者:与其它语言多使用大括号来识别分支语句不同,Python 仅依赖缩进来区分,因此缩进不可或缺,可以是任意个空格或制表符,通常为 4 个,不可空格和制表符混用

    else

    观察上一个例中的、的代码,我们不难看出,无论 ab 怎样取值,只要它们还是数字,第 4 行和第 6 行的if就能且只能执行一个。这种情况下,我们可以使用else

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

    else 与其上方最近的 if 组合,共同形成一个完整的 if 语句。当 if 的条件不满足时,执行 else 中的分支语句;反之则不执行。

    elif

    更多的时候,仅仅有ifelse并不能满足我们的要求,例如对于这个场景:

    输入一个人的年龄,判断他是未成年(<18)、成年(≥18 且<60)还是老年(≥60)?

    可以看到,虽然这道题有三种情况,但是对于任意的输入,这三个情况都一定有且只有一种情况成立;换句话说,只要有一种条件成立,就不必再去判断别的条件了。

    这种情况下,十分适合使用elif语句:

    a = input()
    a = int(a)
    
    if a < 18:
        print('未成年')
    elif 18 <= a < 60:
        print('成年')
    elif a >= 60:
        print('老年')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    这段代码执行逻辑如下:

    在这里插入图片描述

    总而言之,对于这样的存在多个条件最多有一个条件成立的情况,可以使用elif语句。elifelse if的缩写,表示“否则的话,如果”。

    程序会按照先执行if,然后再从上到下执行每个elif的顺序去运行。一旦if或有一个elif的条件为 True ,就会执行其后面的分支代码,然后跳出整个if语句块。

    出于这个特性,我们上面的代码的逻辑判断可以变得简洁一些:

    a = input()
    a = int(a)
    
    if a < 18:
        print('未成年')
    elif a < 60:  # 运行到此处,说明第4行的条件没有成立,即a一定大于等于18
        print('成年')
    else:  # 运行到此处,说明第4行和第6行的条件都没有成立,即a一定大于等于60
        print('老年')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    一道练习题

    同学输入成绩(不大于 100 的正整数),根据下表提示输出该考生等级。

    在这里插入图片描述

    程序运行示例:

    在这里插入图片描述

    参考答案:

    a = int(input('请输入成绩:'))
    
    if a >= 85:
        print('等级:A')
    elif a >= 75:
        print('等级:B')
    elif a >= 60:
        print('等级:C')
    else:
        print('等级:D')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
  • 相关阅读:
    同城两中心自适应同步模式部署
    【初阶数据结构】二叉树的几种遍历详解
    定时任务:SpringBoot+Quartz
    数据结构与算法训练:第二十三弹
    Java 通配符 在短信发送之中 通配符参数动态获取解决方案
    Fedora Linux 38 下可以安装几个数学软件
    kafka
    品味Spring Cache设计之美
    快解析内网穿透为文档加密行业保驾护航
    Java中实现双向链表
  • 原文地址:https://blog.csdn.net/weixin_44495599/article/details/126183755