python3 根据实际问题计算车费

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

提示信息:

北京公交地铁新票价确定

据北京市发改委网站消息称,北京市将从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元;编写程序,帮小明完成每月乘坐地铁需要的总费用

import math

#根据题目写出已知路程求出车费的算法

# road = input("输入路程(公里):")
# road = float(road)
# if road <= 10:
# 	#普通卡的车费
# 	fee = 2 * 0.5
# 	#学生卡的车费
# 	student_fee = 2 * 0.25
# else:
# 	#普通卡的车费
# 	fee = (2 + math.ceil((road-10)/5) * 1) * 0.5
# 	#学生卡的车费
# 	student_fee = (2 + math.ceil((road-10)/5) * 1) * 0.25

# print("当路程为%.2f公里时,普通卡坐公交费用为%.2f"%(road,fee))
# print("当路程为%.2f公里时,学生卡坐公交费用为%.2f"%(road, student_fee))


#根据上面的算法反推出已知普通卡车费求出路程的算法
#小明去上班所以用的不是学生卡

# fee = input("输入车费(元):")
# fee = float(fee)
#小明的车费为5元
fee = 5
if fee == 1:
	road <= 10
else:
	min_road = ((fee - 1) * 2 / 1 -1) * 5 + 10
	max_road = (fee - 1) * 2 / 1 * 5 + 10

print("路程范围为%d公里(不含)到%d公里"%(min_road, max_road))

#已知路程求出坐地铁的车费的算法
# road = input("输入路程(公里):")
# road = float(road)
road = max_road 
if road <= 6:
	metro_fee = 3
elif road<=12:
	metro_fee = 4
elif road<=22:
	metro_fee = 5
elif road<=32:
	metro_fee = 6
elif road>32:
	metro_fee = 6 + math.ceil((road-32)/20) * 1
print("当路程为%.2f公里时,坐地铁的费用为%.2f"%(road, metro_fee))

i = 1
k = 20*2 #乘车的次数
month_fee = 0 #总费用
while i <= k:
	if month_fee >= 400:
		month_fee += metro_fee 
		print("%d次时,坐地铁的费用为%.2f"%(i, month_fee))
	elif month_fee>= 150:
		month_fee += metro_fee * 0.5
		print("%d次时,坐地铁的费用为%.2f"%(i, month_fee))
	elif month_fee>= 100:
		month_fee += metro_fee * 0.8
		print("%d次时,坐地铁的费用为%.2f"%(i, month_fee))
	else:
		month_fee += metro_fee
		print("%d次时,坐地铁的费用为%.2f"%(i, month_fee))
	i += 1

print("当一次的车费为%.2f元时,乘坐地铁%d次的总费用为%.2f"%(metro_fee, k, month_fee))

运行结果:

路程范围为45公里(不含)到50公里
当路程为50.00公里时,坐地铁的费用为7.00
1次时,坐地铁的费用为7.00
2次时,坐地铁的费用为14.00
3次时,坐地铁的费用为21.00
4次时,坐地铁的费用为28.00
5次时,坐地铁的费用为35.00
6次时,坐地铁的费用为42.00
7次时,坐地铁的费用为49.00
8次时,坐地铁的费用为56.00
9次时,坐地铁的费用为63.00
10次时,坐地铁的费用为70.00
11次时,坐地铁的费用为77.00
12次时,坐地铁的费用为84.00
13次时,坐地铁的费用为91.00
14次时,坐地铁的费用为98.00
15次时,坐地铁的费用为105.00
16次时,坐地铁的费用为110.60
17次时,坐地铁的费用为116.20
18次时,坐地铁的费用为121.80
19次时,坐地铁的费用为127.40
20次时,坐地铁的费用为133.00
21次时,坐地铁的费用为138.60
22次时,坐地铁的费用为144.20
23次时,坐地铁的费用为149.80
24次时,坐地铁的费用为155.40
25次时,坐地铁的费用为158.90
26次时,坐地铁的费用为162.40
27次时,坐地铁的费用为165.90
28次时,坐地铁的费用为169.40
29次时,坐地铁的费用为172.90
30次时,坐地铁的费用为176.40
31次时,坐地铁的费用为179.90
32次时,坐地铁的费用为183.40
33次时,坐地铁的费用为186.90
34次时,坐地铁的费用为190.40
35次时,坐地铁的费用为193.90
36次时,坐地铁的费用为197.40
37次时,坐地铁的费用为200.90
38次时,坐地铁的费用为204.40
39次时,坐地铁的费用为207.90
40次时,坐地铁的费用为211.40
当一次的车费为7.00元时,乘坐地铁40次的总费用为211.40

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值