目录
什么是多重判断?
多重判断可以进行多个条件的判断,条件的个数不限。
---------------------------------------------------------------------------------------------------------------------------------
语法
if 条件1:
该条件下执行的代码1
该条件下执行的代码2
该条件下执行的代码3
elif 条件2:
该条件下执行的代码1
该条件下执行的代码2
该条件下执行的代码3
……
……
else:
以上条件都不成立所执行的代码
---------------------------------------------------------------------------------------------------------------------------------
案例
接下来我们通过一个简单的例子来具体的了解一下该语句:
我们现在需要做一个判断年龄的系统,当年龄小于18为未成年人;在18到65之间为成年人;65往上为老年人,这些就是我们的需求。我们可以通过if ... elif... else 语句来实现上述功能,代码如下:
代码1:
# 一个简单的年龄判断系统
age = int(input('请输入您的年龄:'))
if age < 18 and age > 0:
print(f'您的年龄为{age},属于未成年人')
elif (age >= 18) and (age <= 65):
print('您的年龄为%d,属于成年人' % age)
else:
print(f'您的年龄为{age},属于老年人')
提醒:在上述代码中,可以看到 if 后面的语句没有加括号,而 elif 后面加了括号。二者有什么不同呢?在功能的实现上没有任何不同,但是加了括号之后可以使得代码看起来更清晰明了,所以也比较常用。
当我们输入不同的年龄时,可以得到不同的结果。
当我们输入的年龄为2时,显示的结果如下:
当我们输入的年龄为22时,显示的结果如下:
当我们输入的年龄为222时,显示的结果如下:
可以看到当输入不同的年龄时,其在相应的条件下执行了对应的代码,从而实现了多个条件的判断执行
注:其实在多重判断当中,else 是可以不要的。我们可以只用 if 和 elif 来实现上述功能,代码如下:
代码2:
# 一个简单的年龄判断系统
age = int(input('请输入您的年龄:'))
if age < 18 and age > 0:
print(f'您的年龄为{age},属于未成年人')
elif (age >= 18) and (age <= 65):
print('您的年龄为%d,属于成年人' % age)
elif age >= 65:
print(f'您的年龄为{age},属于老年人')
那在多重判断中else 和elif 又有什么区别呢?
简单来说,elif因为有后面的条件限制,所以通常其范围要小一些,而else是只要前面的条件判断都为假,那它就为真,就会执行对应的代码。在这个例子里我们可以用数轴来直观的感受二者的区别,
黑色区域是最后一个 elif 条件所执行的区域,而红色区域是 else 所执行的区域,可以很明显的看到 else 条件执行的区域要大于 elif 条件所执行的区域。
我们可以在python中选一个数来试一下,当我们在代码2的程序中输入-12时,可以看到没有任何的输出结果。
但我们在代码1中输入-12时,却看到了老年人的输出结果。
这就再次印证了”简单来说......“那段话。