在前面,我们学习了单选选择的if语句,双向选择的if-else语句。
但是生活中,N 选一的情况更为多见。
在Python中,我们也可以通过添加更多的选择,实现从“二选一”到“多选一”的进阶,一起来看看吧~
如下面的代码所示,为了实现完整的判断,我们使用了三个 if,来保证所有的得分对比情况(大于、等于、小于)都会有对应的输出。
yourScore =80
myScore =90
if yourScore > myScore:
print("你的得分比我高")
if yourScore == myScore:
print("你的得分和我相等")
if yourScore < myScore:
print("你的得分比我低")
但是对于这种3个或以上的条件,无法使用一个
if-else 结构来优化代码。
这时可以使用Python判断语句中的第三个关键字 elif(else if的缩写)。
if 后的语句是当 if 判断条件成立时,执行的操作。
elif 后的语句是当 if 判断不成立时,再判断一次,如果成立,执行的操作。
else 后的语句是当以上所有判断条件都不成立时,执行的操作。
#用elif(else if的缩写)来优化代码
yourScore =80
myScore =90
if yourScore > myScore:
print("你的得分比我高")
elif yourScore == myScore:
print("你的得分和我相等")
else:
print("你的得分比我低")
就像 if 和 else 一样,elif 语句的最后也需要一个冒号。
在 elif 之后使用冒号,表示后续缩进的代码块在判断条件成立的时候会被执行。
一个关键字 else,如果前面的 if 和 elif 的判断条件都不成立,就执行 else 后面缩进的代码块。
if-elif-else练习
1. 给一个变量 cityPopulation(城市的人口,默认单位为万)赋值10;
2. 如果 cityPopulation 小于等于5,就输出"small city";
3. 否则如果 cityPopulation 大于5且小于等于40,就输出"middle city";
4. 否则,输出"big city"。cityPopulation = 10
if cityPopulation <= 5:
print("small city")
elif (cityPopulation > 5) and (cityPopulation <= 40):
print("middle city")
else:
print("big city")
![](https://img.haomeiwen.com/i14777386/3d11e141676f5f9b.png)
if-elif-else 语句有3个特性。
1. 如果不满足 if 的条件,就判断是否满足 elif 的条件,满足就执行 elif 内的代码块,不满足就执行 else 内的代码块。
2. elif 需与 if 搭配使用,它无法独立出现。必须先有 if ,然后才能使用 elif ,否则程序就会报错。
3. if 、elif 与 else 成互斥关系。
互斥关系指的是,程序不会同时执行 if 内、 elif 内和 else 内的代码块,只会执行其中一个。
else 是把 if 和 elif 判断条件无法囊括的情况全部划分到自己这里。
if-elif-else 语句属于多向判断(3个或以上的条件)。
如果 if 的条件不成立,就执行 elif 再判断一次,如果 elif 的条件也不成立,就执行 else 内的代码块。
if 、elif 、 else 是互斥关系,程序只会执行其中的一个。
并且,当判断的条件超过3个时,中间的多个条件都可以使用 elif ,无论中间有多少个 elif ,它和其他 if 、elif 都是互斥关系。
单向判断:if
双向判断:if-else
多向判断:if-elif-else
if嵌套
1. 给一个变量 num 赋值98。
2. 第一层判断,如果 num 是100以内的正整数(大于0且小于100),再进一步判断。
3. 第二层判断,如果 num 是偶数(能整除2),就输出"偶数"。num = 98
if (num > 0) and (num < 100):
if num%2 == 0:
print("偶数")
#if嵌套
time =13
num =2
if (time >=9)and (time <=23):
print("在打折时间内")
if num >=2:
print("全场八折")内层条件 if 语句内的代码块在外层条件内的代码块缩进的基础上再加四个空格,也就是八个空格。缩进在Python语法规则中扮演重要的角色,千万不能忽视.
网友评论