if 语句是选择语句之一,其完整的形式如下:
if 表达式1:
语句块1
elif 表达式2:
语句块2
elif 表达式3:
语句块3
...
else:
语句块n
if 语句具有如下特征:
if语句可以具有多个分支,第一个分支的句头用if关键字标识,最后一个分支用else标识,中间的各个分支都用elif(else if 的缩写)标识。- 除了最后的
else分支外,其他每个分支都在句头有一个条件表达式。 - 当遇到第一个表达式的求值结果为
True时,则执行该分支对应的语句块(句体),其他分支不被执行。 - 若所有分支的表达式都为
False,则执行最后的else分支。 - 除了第一个
if分支,其他的elif和else分支都可省略。
单分支 if 语句#
单分支if语句
若同时省略 elif 和 else 分支,所得 if 语句为单分支选择语句,其形式最简单。如下所示:
hour = 9
if 7 <= hour < 11:
s = 'Good morning!'
print(s)
二分支 if...else 语句#
二分支 if...else 语句
若省略 elif 分支,所得 if...else 语句为二分支选择语句。如下所示:
n = int(input('请输入一个整数:'))
if n % 2 == 0:
print(f'您输入的 {n} 是一个偶数。')
else:
print(f'您输入的 {n} 是一个奇数。')
多分支 if...elif...else 语句#
多分支 if...elif...else 语句
可以同时具有一个 if 分支,一个 else 分支,以及一个或多个 elif 分支,所得 if...elif...else 语句为多分支选择语句。
根据输入的数字打印“玫瑰花语”:
number = int(input('您想送几朵玫瑰花?'))
if number == 1:
print('1 朵:你是我的唯一')
elif number == 2:
print('2 朵:世界只有你和我')
elif number == 3:
print('3 朵:我爱你')
elif number == 10:
print('10 朵:十全十美')
else:
print('其他美好的愿望')
if 语句的嵌套#
多个 if 语句也可以嵌套使用,如下所示:
number = int(input('您想送几朵玫瑰花?'))
if number <= 0:
print('你必须输入一个正整数!')
else:
if number == 1:
print('1 朵:你是我的唯一')
elif number == 2:
print('2 朵:世界只有你和我')
elif number == 3:
print('3 朵:我爱你')
elif number == 10:
print('10 朵:十全十美')
else:
print('一切的美好的祝福')
if...else 语句的简写法#
当 if...else 语句中每个分支中只有一个语句时,可以使用简写法。如下面的代码:
x = 100
if x == 100:
print('满分')
else:
print('尚有提升空间')
可以简化为:
x = 100
print('满分') if x == 100 else print('尚有提升空间')
# 满分
这种简写法的形式为:
<表达式为 True 时执行的语句> if <表达式> else <表达式为 False 时执行的语句>
当需要根据一个 if...else 语句的执行结果为变量赋值时,常使用这种简化写法。如下所示:
x = 100
s = '满分' if x == 100 else '尚有提升空间'
print(s) # 满分
注意句末的 else 后面是 '尚有提升空间' 而不是 s = '尚有提升空间',这样整个 '满分' if x == 100 else '尚有提升空间' 就类似其他语言的三元条件运算符所形成的表达式,因此这种简写形式也称为条件表达式。