if嵌套
通过学习if的基本用法,已经知道了
- 当需要满足条件去做事情的这种情况需要使用if
- 当满足条件时做事情A,不满足条件做事情B的这种情况使用if-else
想一想:
坐火车或者地铁的实际情况是:先进行安检如果安检通过才会判断是否有车票,或者是先检查是否有车票之后才会进行安检,即实际的情况某个判断是再另外一个判断成立的基础上进行的,这样的情况该怎样解决呢?
答:
if嵌套
<1>if嵌套的格式
if 条件1:
满足条件1 做的事情1
满足条件1 做的事情2
if 条件2:
满足条件2 做的事情1
满足条件2 做的事情2
- 说明
- 外层的if判断,也可以是if-else
- 内层的if判断,也可以是if-else
- 根据实际开发的情况,进行选择
<2>if嵌套的应用
demo:
chePiao = 1 # 用1代表有车票,0代表没有车票
daoLenght = 9 # 刀子的长度,单位为cm
if chePiao == 1:
print("有车票,可以进站")
if daoLenght < 10:
print("通过安检")
print("终于可以见到Ta了,美滋滋~~~")
else:
print("没有通过安检")
print("刀子的长度超过规定,等待警察处理...")
else:
print("没有车票,不能进站")
print("亲爱的,那就下次见了")
结果1:chePiao = 1;daoLenght = 9
有车票,可以进站
通过安检
终于可以见到Ta了,美滋滋~~~
结果2:chePiao = 1;daoLenght = 20
有车票,可以进站
没有通过安检
刀子的长度超过规定,等待警察处理...
结果3:chePiao = 0;daoLenght = 9
没有车票,不能进站
亲爱的,那就下次见了
结果4:chePiao = 0;daoLenght = 20
没有车票,不能进站
亲爱的,那就下次见了
例子
# pass 是一个占位符 防止程序因为格式不符合报错
"""
去火车站坐火车
- 判断是否有票
- 判断是否有危险品(刀具 长度)
- 先进行判断是否有火车票
- 如果有 -> 您可以进入火车站
- 判断你的刀具是否合法 (大于等于10cm 不合法 反之 合法)
- 如果刀具 < 10 您可以乘车
- 如果刀具 >= 10 请带着您的宝剑离开
- 如果无 -> 请先买票 再上车
"""
# 定义一个变量 判断是否有火车票
flag = True
# 定义一个变量 保存刀具的长度
daoLenght = 11
# 判断是否有票
if flag:
# 如果有票
print("您可以进入火车站")
# 判断刀具是否合法
if daoLenght < 10:
# 合法
print("您可以乘车")
else:
print("请带着您的宝剑离开")
else:
# 如果没有票
print("请先买票 再上车")
print("测试")
想一想:为什么结果3和结果4相同???
<3>练一练
情节描述:上公交车,并且可以有座位坐下
要求:输入公交卡当前的余额,只要超过2元,就可以上公交车;如果车上有空座位,就可以坐下。
# 情节描述:上公交车,并且可以有座位坐下
#
# 要求:输入公交卡当前的余额,只要超过2元,就可以上公交车;如果车上有空座位,就可以坐下。
# 判断公交卡余额是否够
# 引导用户输入余额
money = float(input("请输入公交卡余额:"))
# 定义一个变量 保存是否有座位
flag = True
# 判断余额
if money >= 2:
print("您可以上车...")
# 判断车上是否有座位
if flag:
# 有座
print("可以坐下")
else:
# 没有
print("站一会儿...")
else:
print("请先充值再上车...")