1 if-else语句
if-else语句的语法格式如下:
if 表达式:
代码块1
else:
代码块2
在if-else语句中,如果表达式为真,那么执行代码块1,否则执行代码块2。
if-else语句的执行流程如图1所示。
图1 if-else语句的执行流程
假设某个教务系统要根据学生的成绩进行判断,如果成绩不低于60分,打印“及格”,否则打印“不及格”:
- grade = int(input('请输入学生的成绩:')) # 首先输入学生的成绩
- if grade >= 60: # 如果成绩大于等于60分
- print('及格')
- else: # 否则,即成绩小于60分
- print('不及格')
建议将这个程序使用脚本模式运行。输入几组数据,测试运行结果:
- 请输入学生的成绩:59
- 不及格
- 请输入学生的成绩:60
- 及格
- 请输入学生的成绩:100
- 及格
2 if-elif-else语句
if-else只能根据两种情况做出判断——要么条件成立,要么条件不成立。很多时候,需要对多种情况进行判断,此时可以使用if-elif-else语句。
if-elif-else语句的语法格式如下:
if 表达式1:
代码块1
elif 表达式2:
代码块2
elif 表达式3:
代码块3
……
else:
代码块n
if-elif-else语句的执行流程如图2所示。
图2 if-elif-else语句的执行流程
假设教务系统需要对学生的成绩进行细分,60分以下打印“不及格”,大于等于60分且小于70分打印“中等”,大于等于70分且小于90分打印“良好”,大于等于90分打印“优秀”:
- grade = int(input('请输入学生的成绩:'))
- if grade < 60:
- print('不及格')
- elif grade < 70:
- print('中等')
- elif grade < 90:
- print('良好')
- else:
- print('优秀')
建议将这个程序使用脚本模式运行。输入几组数据,测试运行结果:
- 请输入学生的成绩:58
- 不及格
- 请输入学生的成绩:62
- 中等
- 请输入学生的成绩:70
- 良好
- 请输入学生的成绩:92
- 优秀
- 请输入学生的成绩:100
- 优秀
运行结果符合预期。elif是else if的缩写,指当前面的条件不成立时,判断elif后紧跟着的条件是否成立,如果成立就执行相应的代码块并跳过后面一系列的elif-else语句;如果不成立就继续判断下一个elif。
elif语句和if语句都含有条件测试语句,它们的作用究竟有什么不同呢?可以将上面的程序中所有elif都替换成if,试试看会发生什么?替换后的代码如下:
- grade = int(input('请输入学生的成绩:'))
- if grade < 60:
- print('不及格')
- if grade < 70:
- print('中等')
- if grade < 90:
- print('良好')
- else:
- print('优秀')
输入几组数据,测试运行结果:
- 请输入学生的成绩:60
- 中等
- 良好
- 请输入学生的成绩:55
- 不及格
- 中等
- 良好
运行结果显然不符合预期。这是由于这个程序中每个if语句都是相互独立的,并不会因满足了前面的条件就跳过后面的判断;而一组if-elif-else语句中只有一个“出口”,它会因满足了其中一个条件就跳过执行后面的判断。