一、if语句的嵌套用法
假设一个这样的情境:你的面前有三扇门,打开其中一扇后,你发现又有三扇门,数一数你发现,第一层有layer1_a、layer1_b、layer1_c、layer1_d等4扇门,第二层有layer2_a1、layer2_a2、layer2_a3、layer2_b1、layer2_b2、layer2_b3、layer2_c1、layer2_c2、layer2_c3、layer2_d1、layer2_d2、layer2_d3等12扇门。很显然,要想打开第二层的某扇门依赖于第一层的选择。
之前我们已经了解了if语句的三种基本形式,即简单if语句、if_else结构、if_elif…else结构,以上为单一层级的if语句,如果要解决多层级的选择问题,则需要用到嵌套的if语句。
嵌套的if语句指在if语句里面还有if语句,嵌套if语句的结构如下图所示。
if 条件判断语句: # 第一层if
if 条件判断语句: # 第二层if
需要执行的语句
elif 条件判断语句: # 第二层if
需要执行的语句
else: # 第二层if
需要执行的语句
elif 条件判断语句: # 第一层if
if 条件判断语句: # 第二层if
需要执行的语句
elif 条件判断语句: # 第二层if
需要执行的语句
else: # 第二层if
需要执行的语句
else: # 第一层if
需要执行的语句
第二层if语句将进行何种判断依赖于第一层if语句哪个条件判断为真。如下图中,如果要拿到layer2_b3门中的宝物,你需要同时拥有layer1_b和layer2_b3两扇门的钥匙。
我们来看个实例:你的leader需要你为他实现一个用户登陆功能,要求如下:随机产生4位数字验证码,用户输入正确的验证码、用户名和密码,系统首先判断验证码是否正确,如果错误则提示“验证码输入错误”且不会去判断用户名和密码,如果正确则继续判断用户名和密码是否都正确,否则提示“用户名或密码输入错误”。
你的核心任务:构造一个系统,对用户输入的验证码、用户名和密码进行验证。
根据要求,我们是先判别验证码,如果验证码正确,才继续判别用户名和密码。因此,我们需要一个两层if嵌套语句。我们需要的if嵌套语句结构如下:
if 判别验证码是否正确: # 如果验证码正确,继续判别用户名和密码
if 判别用户名和密码是否正确: #第二层if语句用以判别用户名和密码
print('恭喜你,登陆成功!')
else:
print("用户名或密码错误")
else: # 如果验证码错误,直接输入提示。
print("验证码输入错误")
接下来我们写出所有代码,就可以去跟亲爱的leader交差了。
from random import randint
check_code = randint(1000,9999)
username = "Tom"
password = "a123456"
print("验证码",check_code)
identi_code = int(input("请输入验证码:"))
username_input = input("请输入用户名:")
password_input = input("请输入密码:")
if identi_code == check_code:
if username == username_input and password == password_input:
print('恭喜你,登陆成功!')
else:
print("用户名或密码错误")
else:
print("验证码输入错误")
嵌套语句在实际使用时,嵌套的层数不宜过多,如果层数太多,既不美观,代码的可读性也会下降,一般情况不超过3层。
if语句的使用灵活多样,除了前文所述,在以后的学习中我们还会将if语句和循环语句结合起来使用,这将使我们的代码性能大幅提升。
二、5道经典if语句练习
1.一年四季。根据输入的月份输出对应的季节。(输入:3月,输出:春季,输入8月,输出:夏季)(春季:3、4、5月,夏季:6、7、8月,秋季:9、10、11,冬季:12、1、2)
2.三只小熊。三只小熊的年龄分别为6、3、4岁,请编程实现对他们年龄从小到大排序。(bear1_old = 6,bear2_old = 3,bear3_old = 4,输出3、4、6)
3.算数题。已知函数 ,根据输入的x值计算y的值,设计一个程序实现以上算法。
4.儿童票。游乐园儿童购票的规定如下:若身高不超过1.1m,则无需购票;若身高超过1.1m但不超过1.4m,可买半票;如果超过1.4m,应买全票,全票价格为298元。设计一个程序实现以上算法。小明和妹妹小青的身高分别为1.3m和0.9m,请问他们去游乐园玩需要付多少钱的门票?
5.体质指数。体质指数 (Body Mass Index,简称BMI),是国际最常用来量度体重与身高比例的工具。它利用身高和体重之间的比例去衡量一个人是否过瘦或过肥。体制指数的计算公示。其中亚裔成年人的体质指数评判标准如下:
BMI<18.5 过轻
18.5<BMI<23.9 正常
24<BMI<27.9 超重
BMI>28 肥胖
设计一个程序实现以上算法。