根据以下信息提示,请帮小明计算,他每月乘坐地铁支出的总费用

提示信息:

北京公交地铁新票价确定

据北京市发改委网站消息称,北京市将从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相关推荐

  1. python 制作抽奖_python制作抽奖程序代码详解

    实现制作抽奖程序,需要认知到我们可以看到一般抽奖程序界面上是有很多按钮的,比如中奖区域,按键开始区域等等,所以我们先要设置界面,然后把这些按钮添加到界面中去,想必这对于学过tkinter的同学应该不难 ...

  2. python制作五子棋_python制作简单五子棋游戏

    python制作简单五子棋游戏 来源:中文源码网 浏览: 次 日期:2019年11月5日 [下载文档: python制作简单五子棋游戏.txt ] (友情提示:右键点上行txt文档名->目标另存 ...

  3. python制作剪刀石头布_Python制作简单的剪刀石头布游戏

    关于程序相关的 您可以反复玩游戏,直到选择停止为止. 该程序跟踪获胜情况. 大小写无关紧要(即rock与rock相同). 如果您输入的内容无效,程序会一直提示您,直到您输入有效的内容. 对项目进行编码 ...

  4. python制作字典_python如何制作英文字典

    本文实例为大家分享了python制作英文字典的具体代码,供大家参考,具体内容如下 功能有添加单词,多次添加单词的意思,查询,退出,建立单词文件. keys=[] dic={} def rdic(): ...

  5. python制作图画_Python也能绘制艺术画?这里有一个完整教程

    介绍 我们知道Python作为一个程序语言,讲究的是严谨和逻辑:而艺术画似乎处于另一个维度,更多是无规则和随心所欲.然而我们却可以找到两者的交汇点.今天我们将学习如何用Python制作艺术图.一旦我们 ...

  6. python制作标书_Python爬取比比网中标标书并保存成PDF格式

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. python开发环境 python 3.6 pycharm requests parsel ...

  7. python制作日历_Python如何绘制日历图和热力图

    本文以2019年全国各城市的空气质量观测数据为例,利用matplotlib.calmap.pyecharts绘制日历图和热力图.在绘图之前先利用pandas对空气质量数据进行处理. 数据处理 从网站下 ...

  8. python制作日历_python tkinter制作日历界面的简单步骤

    我们可能在编程考试里遇到过这样的编程题,对于基础不太好的小伙伴,可能很头疼这个流程,之前也跟大家说过掌握最精华的内容,才是最重要的,因此,下面小编不仅通过大家容易考试碰到的日历问题,更给大家教学,常见 ...

  9. 如何在python制作计算器_Python简易计算器制作方法代码详解

    主要用到的工具是Python中的Tkinter库 比较简单 直接上图形界面和代码 引用Tkinter库 from tkinter import * 建立主窗口对象 window=Tk() #设置窗口对 ...

最新文章

  1. highcharts与ajax的应用
  2. 【移动通信】4G LTE帧结构
  3. 一个视觉交互设计失败的案例
  4. oracle自动化,oracle自动分析
  5. 随机存取存储器(RAM)
  6. 你不懂API接口是什么?怎么和程序员做朋友
  7. Seata-Server安装_以及工作原理---微服务升级_SpringCloud Alibaba工作笔记0058
  8. Mvc6 错误Microsoft.AspNet.Http.Features.IRequestIdentifierFeature
  9. 云计算机运维是什么,云计算运维管理是什么?
  10. mysql 查询当月过生日_MySql查询本周/月或下周/月过生日的人
  11. lucene.net和(pangu)盘古分词 搜索引擎的简单实现
  12. 设计模式之工厂模式——应用最广泛的模式
  13. 柳传志给杨元庆的信件 (zt)
  14. TiDB聚簇表和非聚簇表
  15. winform Control与UserControl的区别
  16. teamspeak3快速安装
  17. MaxEnt软件的安装
  18. 教你快速给多段视频添加同一个片尾和转场特效
  19. PMI-ACP敏捷项目管理辅导:敏捷开发之 4句敏捷宣言
  20. java.lang.IllegalArgumentException: attempt to create saveOrUpdate event with null entity异常的易被忽略的原因

热门文章

  1. 谭浩强《C语言》学习1
  2. LPC1768用官方库中用寄存器开启两个硬件PWM
  3. 51 《格鲁夫给经理人的第一课》 -豆瓣评分8.8
  4. 最多只需三步,彻底解决VB6中不能加载MSCOMCTL.OCX的提示
  5. cocos creator制作游戏实战-Flak Cannon(二)
  6. maya 白天室内灯光_Maya Vray室内灯光渲染教程
  7. Mysql组复制(MGR)——技术细节
  8. 推荐一个和孩子玩24点游戏的工具:益乐24点
  9. 帝国cms自动生成html首页,分享一个帝国CMS定时生成首页(自动刷新首页)的方法...
  10. 网站备案其实是服务器备案,国内服务器为什么需要备案?国外服务器备案吗?