Python语言程序设计(8)——if语句的嵌套

if语句的嵌套

1 if语句嵌套

if语句嵌套指的是if语句内部包含if语句,其格式如下:

if 条件表达式1:
	代码块1
if 条件表达式2:
	代码块2

上述if语句嵌套的格式中,先判断外层if语句中条件表达式1的结果是否为True,如果结果为True,则执行代码块1,再判断内层if的条件表达式2的结果是否为True,如果条件表达式2的结果为True,则执行代码块2。
针对if嵌套语句,有两点需要说明:
(1) if语句可以多层嵌套,不仅限于两层。
(2)外层和内层的if判断都可以使用if语句、f…ese 语句和elif语句。
根据年份和月份计算当月一共有多少天,示例代码如下:

year = int (input ("请输入年份: "))
month = int (input("请输入月份:"))
if month in [13, 57, 8, 10, 12]:
	print (f" {year}年{month}月有31天")
elif month in[4, 69, 11] :
	print (f"{year}年(month}月有30天")
elif month == 2:
	if year8400 ==0 or(year84 ==0and year8100!=0) :
		print (f"{year}年{month}月有29天")
	else:
		print (f"{year}年{month}月有28天")

上述代码中首先定义了表示年份和月份的变量year和month,分别用于接收用户输人的年份和月份,然后对月份进行判断:若月份为1、3、5、7. 8、10、12,输出“月有31天”;若月份为4、6、9、11,输出“月有30天”;若月份为2月,则需要对年份进行判断:年份为闰年时输出“月有29天”,年份为平年时输出“*年月有28天”。

2 实例: 模拟乘客进站流程

火车和地铁的出现极大地方便了人们的出行,但为了防止不法分子,保障民众安全,进站乘坐火车或者乘坐地铁之前,需要先接受安检。部分车站先验票后安检,亦有车站先安检后验票。

以先验票后安检的车站为例,乘客的进站流程如下:
(1)验票:检查乘客是否购买了车票。
 如果没有车票,不允许进站。
 如果有车票,对行李进行安检。
(2)行李安检:检查乘客是否携带危险品。
 如果携带了危险品,进行提示,不允许上车。
 如果没有携带危险品,顺利进站。
本实例要求编写程序,模拟乘客进站流程。

【参考代码】

"""
坐火车或者地铁的实际情况是:先进行安检如果安检通过才会判断是否有车票,或者是先检查是否有车票之后才会进行安检,
即实际的情况某个判断是再另外一个判断成立的基础上进行的,这样的情况该怎样解决呢?
"""
ticket = 1  # 用1代表有车票,0代表没有车票
knife_length = 9  # 刀子的长度,单位为cm
if ticket == 1:
    print("有车票,可以进站")
    if knife_length < 10:
        print("通过安检")
        print("终于可以见到Ta了,美滋滋~~~")
    else:
        print("没有通过安检")
        print("刀子的长度超过规定,等待警察处理...")
else:
    print("没有车票,不能进站")
    print("亲爱的,那就下次见了,一票难求啊~~~~(>_<)~~~~")

3 实例:快递计费系统

快递行业的高速发展,人们邮寄物品变得方便快捷。某快递点提供华东地区、华南地区、华北地区的寄件服务,其中华东地区编号为01、华南地区编号为02、华北地区编号为03。该快递点寄件价目表具体如表所示。

表 寄件价目表

地区编号首重/元(≤2kg)续重/(元/kg)
华东地区(01)133
华南地区(02 )122
华北地区(03)144

本实例要求根据表3-4提供的数据编写程序,实现快递计费系统。
【参考代码】

"""
帮一家快递点开发一个快递价格计费系统,业务如下:
提示用户输入:1.重量。2.地区编号
首重 3公斤
3公斤以内
编号01:华东地区 13元  华南地区 12元  华北地区 14元
3公斤以外
       华东地区3元/kg  华南地区 2元/kg  华北地区4元/kg

"""

# weight = int(input("请输入快递重量:"))
weight = float(input("请输入快递重量:"))
print('编号01:华东地区 编号02:华南地区 编号03:华北地区')
place = input("请输入地区编号:")
if weight <= 2:
    if place == '01':
        print('快递费为13元')
    elif place == '02':
        print('快递费12元')
    elif place == '03':
        print('快递费14元')
else:
    excess_weight = weight - 2
    if place == '01':
        many = excess_weight * 3 + 13
        print('快递费为%.1f元' % many)
    elif place == '02':
        many = excess_weight * 2 + 12
        print('快递费为%.1f元' % many)
    elif place == '03':
        many = excess_weight * 4 + 14
        print('快递费为%.1f元' % many)

超全面的测试IT技术课程,0元立即加入学习!有需要的朋友戳:


腾讯课堂测试技术学习地址

欢迎转载,但未经作者同意请保留此段声明,并在文章页面明显位置给出原文链接。

  • 9
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值