外观
if 语句
在开始前,请先记住两个英语单词: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
语句(elif 是 else if 的缩写):
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的正整数),根据下表提示输出该考生等级。
成绩 | 对应等级 |
---|---|
85及以上 | A |
大于75且小于85 | B |
大于60且小于75 | C |
小于60 | D |
程序运行示例:

参考答案:
a = int(input('请输入成绩:'))
if a >= 85:
print('等级:A')
elif a >= 75:
print('等级:B')
elif a >= 60:
print('等级:C')
else:
print('等级:D')