栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

1.9 if语句(Python)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

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

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

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

if 条件表达式:
    分支语句

我们一个一个来看:

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

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

if a != 0:
    print(a * 2)
print(a)

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

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

else

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

a = 1
b = 2

if a >= b:
    print('a')
else:
    print('b')

# 输出:b

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

elif

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

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

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

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

a = input()
a = int(a)

if a < 18:
    print('未成年')
elif 18 <= a < 60:
    print('成年')
elif a >= 60:
    print('老年')

这段代码执行逻辑如下:

总而言之,对于这样的存在多个条件且最多有一个条件成立的情况,可以使用elif语句。elif是else 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('老年')
一道练习题

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

程序运行示例:

参考答案:

a = int(input('请输入成绩:'))

if a >= 85:
    print('等级:A')
elif a >= 75:
    print('等级:B')
elif a >= 60:
    print('等级:C')
else:
    print('等级:D')
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1033665.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号