选择语句又称为分支语句,它通过对给定的表达式进行判断,从而决定执行两个或多个分支中的哪一个。因此,在编写选择语句之前,应判断表达式是什么,并确定当判断结果为True或False时应分别执行什么样的操作。
如果表达式计算结果为True就执行“代码块”,否则就执行if结构后面的代码。
if语句的语法格式如下。
if 表达式: 代码块
if语句的流程图如图3-1所示。
图3-1 if语句的流程图
其中,表达式由运算符和操作数所构成。表达式可以是一个单纯的布尔值或变量,也可以是比较表达式或逻辑表达式(例如:a > b and a != c)。如果表达式为True,则执行“代码块”;如果表达式为False,就跳过“代码块”,继续执行后面的语句。
下列代码演示了使用if语句的过程,源代码见code\3\if1.py。
1 score=int(input('请输入考试成绩:')) 2 if score>=60: 3 print ('及格') 4 print('本次程序结束')
代码执行后,当输入分数大于等于60时,则输出“及格”,并输出“本次程序结束”;当输入分数小于60时,表达式不成立,直接结束if语句,输出“本次程序结束”。
如果表达式计算结果为True就执行if表达式后面的代码块1,否则就执行else分支后面的代码块2。
if...else 语句的语法格式如下。
if 表达式: 代码块1 else: 代码块2
if...else 语句的流程图如图3-2所示。
图3-2 if...else语句的流程图
使用if...else 语句时,表达式可以是一个单纯的布尔值或变量,也可以是比较表达式或逻辑表达式。如果满足表达式则执行if表达式后面的代码块1,否则执行else分支后面的代码块2。else不可以单独使用,它必须和关键字if一起使用。
可以通过网上的一个段子来加深了解。
老婆给当程序员的老公打电话:“下班顺路去买一个西瓜,如果看见西红柿,就买两个。”
当晚,程序员老公手捧两个西瓜进了家门……
老婆怒道:“你怎么买了两个西瓜?!”
老公答:“因为看到了西红柿。”
这个网上的段子是一个典型的if...else结构,下面通过代码来演示两种版本,源代码见code\3\ifelse.py。
首先是程序员思维的版本。
1 #程序员的版本 2 #如果看见在销售的西红柿 3 if tomato_is_sell: 4 print("买两个西瓜") 5 else: 6 print("买一个西瓜")
再看看正常思维的版本,是一个if语句结构,源代码见code\3\ifelse1.py。
1 #正常思维的版本 2 print("买一个西瓜") 3 #如果看见在销售的西红柿 4 if tomato_is_sell: 5 print("买两个西红柿")
使用 if...elif...else 语句时,如果表达式为True,执行相应代码块;而如果表达式为False,则跳过该代码块,进行下一个elif的判断;只有在所有表达式都为False的情况下,才会执行else分支的代码块。
if...elif...else 语句的语法格式如下。
if 表达式 1: 代码块 1 elif表达式 2: 代码块 2 elif表达式 3: 代码块 3 …… else: 代码块 n
if...elif...else 语句的流程图如图3-3所示。
图3-3 if...elif...else语句的流程图
下列代码演示if...elif...else 语句的使用,源代码见code\3\if_elif_else.py。
1 score=int(input('请输入考试成绩:')) 2 if score==100: 3 print ('恭喜你,满分') 4 elif score>=90 and score<100: 5 print('很棒') 6 elif score>=80 and score<90: 7 print('成绩良好,继续努力') 8 elif score>=70 and score<80: 9 print('一般') 10 elif score>=60 and score<70: 11 print('勉强') 12 elif score>=0 and score<60: 13 print('不及格,重新来过') 14 else: 15 print('输入错误!')
注意事项如下。
(1)Python中用elif,而不是else if。
(2)每个条件后面都要使用冒号。
(3)使用缩进划分语句,相邻的缩进数相同的语句一起组成一个代码块。