北京地铁月度消费总金额计算(Python版)

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

设计思路:

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

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

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

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

代码:

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

测试结果:

原文地址:https://www.cnblogs.com/babycool/p/4611031.html