Python:计算电费

案例3:计算电费
居民阶梯电价总电费=第一档电费+第二档电费+第三档电费。
夏季标准(5-10月)
第一档电量:每户每月0260度,电价不作调整;
第二档电量:每户每月261一600度,电价每度加价0.05元;第三档电量:每户每月601度及以上,电价每度加价0.30元。
非夏季标准(1-4月、11-12月):
第一档电量:每户每月0一200度,电价不作调整;
第二档电量:每户每月201-400度,电价每度加价 O .05元;第三档电量:每户每月401度及以上,电价每度加价0.30元。
不同城市的单位电价不同:北京0.53元/度
呼和浩特0.415元/度

问题分析:该问题大多使用大量分支语句进行判断与分析,目的是为了让学生更好的了解Python的分支语句,但是较为繁琐,但其思路简单,只是代码稍长。

因此,我选择对数据进行拆分,即算出每一阶段的用电量,在计算过程中,需要对数据进行做差,如果是正数,那么就是这个阶段的用电量,但是,如果出现负数,那么意味着,这一阶段没有用电,所以,我们需要对这个负数进行处理。

负数处理的原理如下:

本质是使用了绝对值对负数进行消除

达到答案为正数时正常显示,答案为负数时,记为0

((a-b)+|(a-b)|)/2

当a-b为负数时,正负相抵,变成0,0/2=0,不影响,除以2是为了正数时的修正

当a-b为正数时,正正相加,变成原来的2倍,因此需要除以2

综上所述,问题变得非常的简单,就是拿到数据算一下,故代码如下:

a=int(input("请选择你所在的城市:\n1--- 北京\n0--- 呼和浩特\n"))
if a:a=0.53
else:a=0.415
b=int(input("请选择当前的月份范围:\n1--- 5-10月\n0--- 其他月份\n"))
if b:b,c=260,600
else:b,c=200,400
n=float(input("请输入你所使用的用电量:"))
d3=((n-c)+abs(n-c))/2
d2=((n-d3-b)+abs(n-d3-b))/2
d1=n-d2-d3
n=d1*a+d2*(a+0.05)+d3*(a+0.30)
print("你所使用电量的电费为%.2lf元"%n)
input("请输入任意按键退出")

Python:计算电费_第1张图片

Python:计算电费_第2张图片 

Python:计算电费_第3张图片 

 Python:计算电费_第4张图片

 Python:计算电费_第5张图片

Python:计算电费_第6张图片 

 

内师大

20计科汉一

指导老师:希闰高娃

你可能感兴趣的:(python)