我根据公式制作了一个固定折旧表:
Fixed rate = 1 - ((salvage / cost) ^ (1 / life))
到目前为止我有这段代码:
def FixedRateDepreciationTable(salvage,cost, life):
rate = 1 - ((salvage / cost) ** (1 / life))
print("Year Depreciation Book Value at the year-end")
dv= cost * rate
cost= cost - dv
print("{0:4} {1:>18} {2:26}".format(1,"$"+str(round(dv,2)),cost))
FixedRateDepreciationTable(1000, 100000, 10)
结果如下:
Year Depreciation Book Value at the year-end
1 $36904.27 63095.73444801933
我不确定如何在第一年与其他年份一起打印出来。如何使用我现在的代码以折旧和账面价值打印多年?
答案 0 :(得分:1)
我不确定我是否已经获得了折旧公式(我已经为你给出的公式教授了不同的公式)但是如果需要你可以调整这个逻辑。
基本上我正在做的是将FixedRateDepreciationTable
转变为 generator function ,这样它就会产生每年的折旧和新价值,直到最后产品的使用寿命。
在代码主体中,我迭代这个生成器并打印每个值。
def FixedRateDepreciationTable(salvage, cost, life):
rate = 1 - ((salvage / cost) ** (1 / life))
for year in range(1, life + 1):
dv = cost * rate
cost -= dv
yield year, round(dv, 2), cost
if __name__ == '__main__':
print("Year\tDepreciation\tBook Value at the year-end")
for year, depreciation, new_value in FixedRateDepreciationTable(1000, 100000, 10):
print("{0:4}\t{1:>18}\t{2:26}".format(year, depreciation, new_value))
<强>输出强>
Year Depreciation Book Value at the year-end
1 36904.27 63095.73444801933
2 23285.02 39810.71705534973
3 14691.85 25118.8643150958
4 9269.93 15848.931924611135
5 5848.93 10000.0
6 3690.43 6309.573444801932
7 2328.5 3981.0717055349724
8 1469.19 2511.88643150958
9 926.99 1584.8931924611134
10 584.89 999.9999999999999
答案 1 :(得分:-1)
使用循环:
for year in range(1, life):
缩进代码行以将它们放入循环中。