python制作收费_python分段计费demo
根据以下信息提示,请帮小明计算,他每月乘坐地铁支出的总费用
提示信息:
北京公交地铁新票价确定
据北京市发改委网站消息称,北京市将从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:
per_consume = per_cost(distance) * 1 # 每次乘车费用
sum_consume += per_consume # 本月累计乘车费用
# 发生优惠后,消费
# 100元后,折扣0.8
# 150元后,折扣0.5
# 400元后,折扣1
elif sum_consume > 100 and sum_consume <= 150:
per_consume = per_cost(distance) * 0.8
sum_consume += per_consume
elif sum_consume > 150 and sum_consume <= 400:
per_consume = per_cost(distance) * 0.5
sum_consume += per_consume
elif 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
python制作收费_python分段计费demo相关推荐
- python 制作抽奖_python制作抽奖程序代码详解
实现制作抽奖程序,需要认知到我们可以看到一般抽奖程序界面上是有很多按钮的,比如中奖区域,按键开始区域等等,所以我们先要设置界面,然后把这些按钮添加到界面中去,想必这对于学过tkinter的同学应该不难 ...
- python制作五子棋_python制作简单五子棋游戏
python制作简单五子棋游戏 来源:中文源码网 浏览: 次 日期:2019年11月5日 [下载文档: python制作简单五子棋游戏.txt ] (友情提示:右键点上行txt文档名->目标另存 ...
- python制作剪刀石头布_Python制作简单的剪刀石头布游戏
关于程序相关的 您可以反复玩游戏,直到选择停止为止. 该程序跟踪获胜情况. 大小写无关紧要(即rock与rock相同). 如果您输入的内容无效,程序会一直提示您,直到您输入有效的内容. 对项目进行编码 ...
- python制作字典_python如何制作英文字典
本文实例为大家分享了python制作英文字典的具体代码,供大家参考,具体内容如下 功能有添加单词,多次添加单词的意思,查询,退出,建立单词文件. keys=[] dic={} def rdic(): ...
- python制作图画_Python也能绘制艺术画?这里有一个完整教程
介绍 我们知道Python作为一个程序语言,讲究的是严谨和逻辑:而艺术画似乎处于另一个维度,更多是无规则和随心所欲.然而我们却可以找到两者的交汇点.今天我们将学习如何用Python制作艺术图.一旦我们 ...
- python制作标书_Python爬取比比网中标标书并保存成PDF格式
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. python开发环境 python 3.6 pycharm requests parsel ...
- python制作日历_Python如何绘制日历图和热力图
本文以2019年全国各城市的空气质量观测数据为例,利用matplotlib.calmap.pyecharts绘制日历图和热力图.在绘图之前先利用pandas对空气质量数据进行处理. 数据处理 从网站下 ...
- python制作日历_python tkinter制作日历界面的简单步骤
我们可能在编程考试里遇到过这样的编程题,对于基础不太好的小伙伴,可能很头疼这个流程,之前也跟大家说过掌握最精华的内容,才是最重要的,因此,下面小编不仅通过大家容易考试碰到的日历问题,更给大家教学,常见 ...
- 如何在python制作计算器_Python简易计算器制作方法代码详解
主要用到的工具是Python中的Tkinter库 比较简单 直接上图形界面和代码 引用Tkinter库 from tkinter import * 建立主窗口对象 window=Tk() #设置窗口对 ...
最新文章
- highcharts与ajax的应用
- 【移动通信】4G LTE帧结构
- 一个视觉交互设计失败的案例
- oracle自动化,oracle自动分析
- 随机存取存储器(RAM)
- 你不懂API接口是什么?怎么和程序员做朋友
- Seata-Server安装_以及工作原理---微服务升级_SpringCloud Alibaba工作笔记0058
- Mvc6 错误Microsoft.AspNet.Http.Features.IRequestIdentifierFeature
- 云计算机运维是什么,云计算运维管理是什么?
- mysql 查询当月过生日_MySql查询本周/月或下周/月过生日的人
- lucene.net和(pangu)盘古分词 搜索引擎的简单实现
- 设计模式之工厂模式——应用最广泛的模式
- 柳传志给杨元庆的信件 (zt)
- TiDB聚簇表和非聚簇表
- winform Control与UserControl的区别
- teamspeak3快速安装
- MaxEnt软件的安装
- 教你快速给多段视频添加同一个片尾和转场特效
- PMI-ACP敏捷项目管理辅导:敏捷开发之 4句敏捷宣言
- java.lang.IllegalArgumentException: attempt to create saveOrUpdate event with null entity异常的易被忽略的原因
热门文章
- 谭浩强《C语言》学习1
- LPC1768用官方库中用寄存器开启两个硬件PWM
- 51 《格鲁夫给经理人的第一课》 -豆瓣评分8.8
- 最多只需三步,彻底解决VB6中不能加载MSCOMCTL.OCX的提示
- cocos creator制作游戏实战-Flak Cannon(二)
- maya 白天室内灯光_Maya Vray室内灯光渲染教程
- Mysql组复制(MGR)——技术细节
- 推荐一个和孩子玩24点游戏的工具:益乐24点
- 帝国cms自动生成html首页,分享一个帝国CMS定时生成首页(自动刷新首页)的方法...
- 网站备案其实是服务器备案,国内服务器为什么需要备案?国外服务器备案吗?