if 语句

if 语句是选择语句之一,其完整的形式如下:

if 表达式1:
    语句块1
elif 表达式2:
    语句块2
elif 表达式3:
    语句块3
...
else:
    语句块n

if 语句具有如下特征

  • if 语句可以具有多个分支,第一个分支的句头用 if 关键字标识,最后一个分支用 else 标识,中间的各个分支都用 elif(else if 的缩写)标识。
  • 除了最后的 else 分支外,其他每个分支都在句头有一个条件表达式。
  • 当遇到第一个表达式的求值结果为 True 时,则执行该分支对应的语句块(句体),其他分支不被执行。
  • 若所有分支的表达式都为 False,则执行最后的 else 分支。
  • 除了第一个 if 分支,其他的 elifelse 分支都可省略。

单分支 if 语句#

单分支if语句

单分支if语句

若同时省略 elifelse 分支,所得 if 语句为单分支选择语句,其形式最简单。如下所示:

hour = 9
if 7 <= hour < 11:
    s = 'Good morning!'
    print(s)

二分支 if...else 语句#

二分支 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...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 '尚有提升空间' 就类似其他语言的三元条件运算符所形成的表达式,因此这种简写形式也称为条件表达式

程序结构match 语句