本文来自异想之旅公开发布的Python教程,原文地址:https://www.yuque.com/yxzl/python
在开始前,请先记住两个英语单词:if,如果;else,否则。
if是 Python 中用于逻辑判断的条件语句,用来判断一个事情为真或假,再根据不同情况执行不同语句。
我们可以从下图中知道 if 的基本运行逻辑:

a = 1
b = 2
if a >= b:
print('a')
if b > a:
print('b')
# 输出:b
第 4~7 行翻译成人话干了这么两件事:
a 的数值大于等于 b 的数值,那么输出 ab 的数值大于 a 的数值,那么输出 b理解了它在干什么我们就来看语句结构:
if 条件表达式:
分支语句
我们一个一个来看:
缩进,用于区分“分支语句”和“非分支语句”——试想如果没有缩进,我该怎么区分第 2 行和第 3 行哪个是第 1 行的条件表达式成立才执行的,哪个是始终执行的?
if a != 0:
print(a * 2)
print(a)
现在能理解缩进的重要性了嘛~
针对有其它编程语言基础者:与其它语言多使用大括号来识别分支语句不同,Python 仅依赖缩进来区分,因此缩进不可或缺,可以是任意个空格或制表符,通常为 4 个,不可空格和制表符混用
观察上一个例中的、的代码,我们不难看出,无论 a 与 b 怎样取值,只要它们还是数字,第 4 行和第 6 行的if就能且只能执行一个。这种情况下,我们可以使用else:
a = 1
b = 2
if a >= b:
print('a')
else:
print('b')
# 输出:b
else 与其上方最近的 if 组合,共同形成一个完整的 if 语句。当 if 的条件不满足时,执行 else 中的分支语句;反之则不执行。
更多的时候,仅仅有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')