龙空技术网

少儿Python每日一题(12):停车场的停车费

凤城老人 203

前言:

此时朋友们对“python例题计算停车费”都比较注意,各位老铁们都需要剖析一些“python例题计算停车费”的相关文章。那么小编也在网络上搜集了一些对于“python例题计算停车费””的相关文章,希望小伙伴们能喜欢,我们一起来学习一下吧!

原题解答

本次的题目如下所示(原题出处:NOC):

六一儿童节,小可一家人去银座商场游玩,小可爸爸的车停在地下停车场。已知银座商场地下停车场的收费标准是,停车一小时收费5元,如果超过1个小时,超出时间收费6元/小时,如果超过5小时,超出时间收费7元/小时。(不足一小时按照一小时计算)

请设计一个程序,输入停车时间,自动计算停车费。

输入范例

3

输出范例

17

输入范例

3.5

输出范例

23

输入范例

4

输出范例

23

本题是一个阶梯费用类的问题,在小学数学题中也有类似的题目。此类题目很明显根据阶梯的费率进行多分支结构的判断。拿到此类题目我们首先要根据费率列出表格和计算公式。下一步再根据公式转换为程序语言。

时间

描述

计算公式

t ≤ 1

5元/小时

amount = 5

1 < t ≤ 5

6元/小时

amount = 5 + (t - 1) × 6

t > 5

7元/小时

amount = 5 + 4 × 6 + (t - 5) × 7

题目中还有一个关键信息是不足一小时按1小时计算,从输入范例中可以看出,用户输入的时间可以是浮点数,因此在计算前,我们需要对时间进行处理。从题目的要求我们可以看出,无论是超出多少分钟都按照1小时计算,我们需要采用进一法,不能采用四舍五入。由此我们可以得到程序的代码如下:

from math import ceilt = float(input())t = ceil(t) # 进一法if t <= 1:    amount = 5elif t <= 5:    amount = 5 + (t - 1) * 6elif t > 5:    amount = 5 + 4 * 6 + (t - 5) * 7print(amount)
本题拓展

本题考查的是阶梯费率问题,题目难度★

此类问题从编程的角度上来说没有任何难度,只要使用多分支结构就可以解决。更多的是在考的数学能力,需要根据阶梯的费率列出不同阶梯的公式。阶梯费率最大的注意点是小于该阶梯的部分依然按照原来的费用计算。

下面我们看这一道题目:

国家对工资收入征收个人所得税,个人所得税的征收按照每个月的实际工资所得计算。计算方法如下:

不足5000元的部分(包括5000元),不收税;5000元至8000元(包括8000元)的部分,征收税率为3%;8000元至17000元(包括17000元)的部分,征收税率为10%;17000元至30000元(包括30000)元的部分,征收税率为20%;30000元至40000元(包括40000元)的部分,征收税率为25%;40000元至60000元(包括60000元)的部分,征收税率为30%;60000元至85000元(包括85000)元的部分,征收税率为35%;超出85000元部分,征收税率为40%。

请编写一个程序,输入工资收入,计算应缴纳的个人所得税,保留两位小数。

本题也是一个阶梯费率的问题,遇到这类问题我们同样是根据阶梯费率列出不同阶段的计算公式。再根据公式写出多分支的语句即可,这里就省略表格了,大家可以自己列出公式。最终的程序如下所示:

salary = float(input())if salary <= 5000:    tax = 0elif salary <= 8000:    tax = (salary - 5000) * 0.03elif salary <= 17000:    tax = (8000 - 5000) * 0.03 + (salary - 8000) * 0.1elif salary <= 30000:    tax = (8000 - 5000) * 0.03 + (17000 - 8000) * 0.1 + (salary - 17000) * 0.2elif salary <= 40000:    tax = (8000 - 5000) * 0.03 + (17000 - 8000) * 0.1 + \        (30000 - 17000) * 0.2 + (salary - 30000) * 0.25elif salary <= 60000:    tax = (8000 - 5000) * 0.03 + (17000 - 8000) * 0.1 + \        (30000 - 17000) * 0.2 + (40000 - 30000) * 0.25 + (salary - 40000) * 0.3elif salary <= 85000:    tax = (8000 - 5000) * 0.03 + (17000 - 8000) * 0.1 + \        (30000 - 17000) * 0.2 + (40000 - 30000) * 0.25 + \        (60000 - 40000) * 0.3 + (salary - 60000) * 0.35else:    tax = (8000 - 5000) * 0.03 + (17000 - 8000) * 0.1 + \        (30000 - 17000) * 0.2 + (40000 - 30000) * 0.25 + \        (60000 - 40000) * 0.3 + (85000 - 60000) * 0.35 + (salary - 85000) * 0.4tax = round(tax, 2) # 四舍五入,保留两位小数print(tax) 

标签: #python例题计算停车费