最近业余时间在学习Python,这是那天坐地铁时突发奇想,想看看我这一个月的地铁费共多少钱,所以简单的构思了下思路,就直接开写了,没想到用Python来实现还挺简单的。

设计思路:

  每次乘车正常消费7元,每天乘车2次,每月工作日乘车22天。

  每月乘车总金额超过100元,下次乘车票价的8折

  每月乘车总金额超过150元,下次乘车票价的5折

  每月乘车总金额超过400元,下次乘车不打折

代码:

  1. # _*_coding=utf-8 _*_
  2. __author__ = 'Xue'
  3.  
  4. '''
  5. 计算北京地铁每月乘车票价总金额
  6. version 1.0
  7. 默认:每次乘车x元,每天乘车2次,每月乘车22天
  8.  
  9. 每月乘车总金额超过100元,下次乘车票价的8折
  10. 每月乘车总金额超过150元,下次乘车票价的5折
  11. 每月乘车总金额超过400元,下次乘车不打折
  12.  
  13. '''
  14.  
  15. def way():
  16. dayMoney=int(raw_input("请输入您单次乘车正常票价(单位:元):"))
  17. dayTime=raw_input("请输入您每天乘车次数(默认2次):")
  18. dayMonth=raw_input("请输入您每月乘车天数(默认22天):")
  19. dayAllMoney=0.0 #当月乘车总金额
  20.  
  21. #统计各阶段乘车的钱数和次数和
  22. m100=0.0
  23. m150=0.0
  24. m400=0.0
  25. mmax=0.0
  26. t100=0
  27. t150=0
  28. t400=0
  29. tmax=0
  30.  
  31. if dayTime=='':
  32. dayTime=2
  33. else:
  34. dayTime=int(dayTime) #格式转换
  35.  
  36. if dayMonth=='':
  37. dayMonth=22
  38. else:
  39. dayMonth=int(dayMonth) #格式转换
  40.  
  41. dayMonthTime=dayTime*dayMonth #每月总乘车次数
  42. dayNowTime=0 #乘车次数记录
  43.  
  44. while dayNowTime<=dayMonthTime:
  45.  
  46. if dayAllMoney<=100.0: #总金额小等于100元时,按正常票价收费
  47. dayAllMoney+=dayMoney
  48. m100+=dayMoney
  49. t100+=1
  50. elif dayAllMoney<=150.0: #总金额小等于150时,按正常票价的8折收费
  51. dayAllMoney+=dayMoney*0.8
  52. m150+=dayMoney*0.8
  53. t150+=1
  54. elif dayAllMoney<=400.0: #总金额小等于400时,按正常票价的5折收费
  55. dayAllMoney+=dayMoney*0.5
  56. m400+=dayMoney*0.5
  57. t400+=1
  58. else : #总金额超过400元,按正常票价收费
  59. dayAllMoney+=dayMoney
  60. mmax+=dayMoney
  61. tmax+=1
  62.  
  63. dayNowTime+=1 #乘车次数++
  64.  
  65. return (dayMonth,dayTime,dayMoney,dayAllMoney,m100,t100,m150,t150,m400,t400,mmax,tmax)
  66.  
  67. if __name__== '__main__':
  68. (dm,dt,dy,dam,m100,t100,m150,t150,m400,t400,mmax,tmax)= way()
  69.  
  70. print("\n")
  71. print ("您该月共乘坐北京地铁 {0} 天,每天 {1} 次,单次乘车消费{2}元,共消费 {3:.2f} 元。".format(dm,dt,dy,dam))
  72. print("\n")
  73. print("月总消费额度100元阶段内: 共乘坐 {0} 次,阶段消费 {1:.2f} 元,共计 {2:.2f} 元。".format(t100,m100,m100))
  74. print("月总消费额度150元阶段内: 共乘坐 {0} 次,阶段消费 {1:.2f} 元,共计 {2:.2f} 元。".format(t150,m150,m100+m150))
  75. print("月总消费额度400元阶段内: 共乘坐 {0} 次,阶段消费 {1:.2f} 元,共计 {2:.2f} 元。".format(t400,m400,m100+m150+m400))
  76. print("月总消费额度超过400元阶段内: 共乘坐 {0} 次,阶段消费 {1:.2f} 元,共计 {2:.2f} 元。".format(tmax,mmax,m100+m150+m400+mmax))
  77. print("\n")

测试结果:

北京地铁月度消费总金额计算(Python版)的更多相关文章

  1. Python科学计算发行版—Anaconda

    Python是一种强大的编程语言,其提供了很多用于科学计算的模块,常见的包括numpy.scipy和matplotlib.要利用Python进行科学计算,就需要一一安装所需的模块,而这些模块可能又依赖 ...

  2. 目前比较流行的Python科学计算发行版

    经常有身边的学友问到用什么Python发行版比较好? 其实目前比较流行的Python科学计算发行版,主要有这么几个: Python(x,y) GUI基于PyQt,曾经是功能最全也是最强大的,而且是Wi ...

  3. 栈应用之 后缀表达式计算 (python 版)

    栈应用之 后缀表达式计算 (python 版) 后缀表达式特别适合计算机处理 1.  中缀表达式.前缀表达式.后缀表达式区别  中缀表达式:(3 - 5) * (6 + 17 * 4) / 3 17 ...

  4. 北京地铁出行线路规划系统项目总结(Java+Flask+Vue实现)

    北京地铁出行线路规划系统项目总结 GitHub仓库地址:https://github.com/KeadinZhou/SE-Subway Demo地址:http://10.66.2.161:8080/ ...

  5. 【原】Learning Spark (Python版) 学习笔记(三)----工作原理、调优与Spark SQL

    周末的任务是更新Learning Spark系列第三篇,以为自己写不完了,但为了改正拖延症,还是得完成给自己定的任务啊 = =.这三章主要讲Spark的运行过程(本地+集群),性能调优以及Spark ...

  6. ROS Learning-021 learning_tf-05(编程) now() 和 Time(0) 的区别 (Python版)

    ROS Indigo learning_tf-05 now() 和 Time(0)的区别 (Python版) - waitForTransform() 函数 我使用的虚拟机软件:VMware Work ...

  7. 稀疏矩阵相乘-Python版

                                          稀疏矩阵相乘-Python版 Given two sparse matrices A and B, return the r ...

  8. 人脸验证算法Joint Bayesian详解及实现(Python版)

    人脸验证算法Joint Bayesian详解及实现(Python版) Tags: JointBayesian DeepLearning Python 本博客仅为作者记录笔记之用,不免有很多细节不对之处 ...

  9. Dijkstra算法_北京地铁换乘_android实现-附带源码.apk

    Dijkstra算法_北京地铁换乘_android实现   android 2.2+ 源码下载    apk下载 直接上图片 如下: Dijkstra(迪杰斯特拉)算法是典型的最短路径路由算法,用于计 ...

随机推荐

  1. Apache 常用伪静态配置

    1. /a/b?c=d => index.php?_a=a&_m=b&c=d 2. /xxx/detail-yyy.html => index.php?_a=xxx& ...

  2. IE6兼容透明JS

    <!--兼容png格式图片--> <!--[]> <script type="text/javascript" src="Js/DD_bel ...

  3. (原创)学习MCU的感悟_初级(MCU,经验)

    1.Abstract     想了许多,不知道怎么开始,这算是学习和应用MCU的第四个年头了:过程虽然坎坎坷坷,但仍然还是坚持到了今天,也总算是折腾入行了.为了写的还是能够读下去,还特意写了一个小提纲 ...

  4. 让IE支持placeholder属性~

    原文:https://www.oschina.net/code/snippet_206691_26471#44160 让支持的直接路过,不支持的,完美显示~~ /*  * jQuery placeho ...

  5. webpy使用笔记(一)

    webpy入门 工作环境中需要经常生产和测试服务器,机房一直很混乱,因此萌生了开发一个简单方便的服务器管理系统(说的好高大上,其实就是个可以获取服务器信息的小web应用).之所以选择webpy,正式因 ...

  6. ubuntu安装redis

    1.下载安装root@21ebdf03a086:/# apt-cache search redisroot@21ebdf03a086:/# apt-get install redis-server a ...

  7. sql 取首次投资的人

    --- 11月 ---首次投资笔数和投资金额 ) AS stNum,sum(amount) AS stAmount FROM ( ),createtime,) AS riqi,a.amount,a.u ...

  8. [读书笔记]C#学习笔记七: C#4.0中微小改动-可选参数,泛型的可变性

    前言 下面就开始总结C#4.0的一些变化了, 也是这本书中最后的一点内容了, 这一部分终于要更新完了. 同时感觉再来读第二遍也有不一样的收获. 今天很嗨的是武汉下雪了,明天周六,一切都是这么美好.哈哈 ...

  9. paip.自定义java 泛型类与泛型方法的实现总结

    paip.自定义java 泛型类与泛型方法的实现总结 ============泛型方法     public static <atiType,retType> retType reduce ...

  10. XML的简单学习

    推荐入门级学习XML网址W3c     http://www.w3school.com.cn/xml/xml_intro.asp 1: XML 指可扩展标记语言    XML 被设计用来传输和存储数据 ...