python分段计费demo

您所在的位置:网站首页 北京地铁一卡通收费标准 python分段计费demo

python分段计费demo

2023-09-03 08:05| 来源: 网络整理| 查看: 265

根据以下信息提示,请帮小明计算,他每月乘坐地铁支出的总费用提示信息:北京公交地铁新票价确定据北京市发改委网站消息称,北京市将从2015年12月28起实施公共交通新票价:地铁6公里(含)内3元,公交车10公里(含)内2元,使用市政交通一卡通刷卡乘公交车普通卡5折,学生卡2.5折。  具体实施方案如下:  一、城市公共电汽车价格调整为:10公里(含)内2元,10公里以上部分,每增加1元可乘坐5公里。使用市政交通一卡通刷卡乘坐城市公共电汽车,市域内路段给予普通卡5折,学生卡2.5折优惠;市域外路段维持现行折扣优惠不变。享受公交政策的郊区客运价格,由各区、县政府按照城市公共电汽车价格制定。  二、轨道交通价格调整为:6公里(含)内3元;6公里至12公里(含)4元;12公里至22公里(含)5元;22公里至32公里(含)6元;32公里以上部分,每增加1元可乘坐20公里。使用市政交通一卡通刷卡乘坐轨道交通,每自然月内每张卡支出累计满100元以后的乘次,价格给予8折优惠;满150元以后的乘次,价格给予5折优惠;支出累计达到400元以后的乘次,不再享受打折优惠。要求:假设每个月,小明都需要上20天班,每次上班需要来回1次,即每天需要乘坐2次同样路线的地铁;每月月初小明第一次刷公交卡时,扣款5元;编写程序,帮小明完成每月乘坐地铁需要的总费用

 

解答:由题名推断,小明的乘车距离在45-50km区间,这里乘车距离取50来计算。

代码实现如下:

import math from decimal import Decimal def per_cost(distance): ''' 每次乘坐地铁的费用 :param distance: 乘坐距离 :return: 乘坐费用 ''' per_consume = 0 # 累计消费金额 if distance > 32: num = math.ceil((distance - 32) / 20) more = num * 1 per_consume = 6 + more elif distance > 22 and distance >= 32: per_consume = 6 elif distance > 12 and distance >= 22: per_consume = 5 elif distance > 6 and distance >= 12: per_consume = 4 elif distance > 0 and distance >= 6: per_consume = 3 return per_consume if __name__ == '__main__': distance = 50 # 乘坐距离 sum_consume = 0 # 总计消费 per_workday_cost = 0 # 每天乘车消费 for halfday in range(1, 41): # 20个工作日内共有40次乘车 workday = math.ceil(halfday / 2) # 第workday个工作日 half_tag = "" if halfday % 2 != 0: half_tag = "上午" else: half_tag = "下午" per_consume = 0 # 每次乘车费用 if sum_consume >= 0 and sum_consume 100 and sum_consume 150 and sum_consume 400: per_consume = per_cost(distance) * 1 sum_consume += per_consume print("第%2s天 %s 消费:%s。本月累计费用:%s" % ( workday, half_tag, Decimal(per_consume).quantize(Decimal('0.00')), Decimal(sum_consume).quantize(Decimal('0.00'))) ) print("本月乘车总消费:%.2f" % sum_consume)

  

输出:

第 1天 上午 消费:7.00。本月累计费用:7.00第 1天 下午 消费:7.00。本月累计费用:14.00第 2天 上午 消费:7.00。本月累计费用:21.00第 2天 下午 消费:7.00。本月累计费用:28.00第 3天 上午 消费:7.00。本月累计费用:35.00第 3天 下午 消费:7.00。本月累计费用:42.00第 4天 上午 消费:7.00。本月累计费用:49.00第 4天 下午 消费:7.00。本月累计费用:56.00第 5天 上午 消费:7.00。本月累计费用:63.00第 5天 下午 消费:7.00。本月累计费用:70.00第 6天 上午 消费:7.00。本月累计费用:77.00第 6天 下午 消费:7.00。本月累计费用:84.00第 7天 上午 消费:7.00。本月累计费用:91.00第 7天 下午 消费:7.00。本月累计费用:98.00第 8天 上午 消费:7.00。本月累计费用:105.00第 8天 下午 消费:5.60。本月累计费用:110.60第 9天 上午 消费:5.60。本月累计费用:116.20第 9天 下午 消费:5.60。本月累计费用:121.80第10天 上午 消费:5.60。本月累计费用:127.40第10天 下午 消费:5.60。本月累计费用:133.00第11天 上午 消费:5.60。本月累计费用:138.60第11天 下午 消费:5.60。本月累计费用:144.20第12天 上午 消费:5.60。本月累计费用:149.80第12天 下午 消费:5.60。本月累计费用:155.40第13天 上午 消费:3.50。本月累计费用:158.90第13天 下午 消费:3.50。本月累计费用:162.40第14天 上午 消费:3.50。本月累计费用:165.90第14天 下午 消费:3.50。本月累计费用:169.40第15天 上午 消费:3.50。本月累计费用:172.90第15天 下午 消费:3.50。本月累计费用:176.40第16天 上午 消费:3.50。本月累计费用:179.90第16天 下午 消费:3.50。本月累计费用:183.40第17天 上午 消费:3.50。本月累计费用:186.90第17天 下午 消费:3.50。本月累计费用:190.40第18天 上午 消费:3.50。本月累计费用:193.90第18天 下午 消费:3.50。本月累计费用:197.40第19天 上午 消费:3.50。本月累计费用:200.90第19天 下午 消费:3.50。本月累计费用:204.40第20天 上午 消费:3.50。本月累计费用:207.90第20天 下午 消费:3.50。本月累计费用:211.40本月乘车总消费:211.40



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3