0

我需要一些关于这个程序的帮助。我已经尝试了一些东西,但它似乎不起作用。当我单击运行时,没有任何反应。我认为我的循环可能有问题,但我不太确定。另外我不知道如何添加通货膨胀。感谢任何帮助!

附加信息: 您的父母需要购买一辆新车,他们正试图决定是否购买混合动力车。与非混合动力汽车相比,混合动力汽车产生的二氧化碳排放量更少,燃油效率更高。然而,混合动力汽车也比非混合动力汽车花费更多的钱。帮助您的父母决定购买哪种类型的车辆(严格按照财务成本而不考虑环境效益)。典型的家庭每年行驶 20,000 公里,目前汽油价格为 1.30 美元/升。

问题: 允许用户输入混合动力和非混合动力车辆的成本以及这些车辆的综合燃油效率。此外,允许用户输入
他们每年驾驶的平均公里数(注意:平均为 20000 公里/年)。然后
输出两辆车的成本相等需要多少年的所有权。
假设汽油价格保持在 1.30 美元/升不变。

显然,gas 的成本会逐年增加(这称为通货膨胀)。
将天然气价格每年上涨 3%
(即年通货膨胀率为 3%)的想法纳入您的计算中。

这是我到目前为止所拥有的:

i=0 # The year counter
gas=1.30
avgkm=20000
inflation=1.03
standard_cost=0
hybrid_cost=0

standard_cost=input("Enter the price of the non-hybrid car: ")
hybrid_cost=input("Enter the price of the hybrid car: ")
fueleff1=input("Enter litres/100km for the standard car: ")
fueleff2=input("Enter litres/100km for the hybrid car: ")

standardyear=avgkm/100 * fueleff1 * gas + standard_cost
hybridyear=avgkm/100 * fueleff2 * gas + hybrid_cost

while standard_cost != hybrid_cost:
    i += 1    # Add a year
    standard_cost += standardyear    
    hybrid_cost += hybridyear
    if hybrid_cost==standard_cost:
        break

print "It will take",i,"years. "
4

2 回答 2

1

我看到几个问题:

1) 只有在 standard_cost 完全等于 hybrid_cost 时,您的循环才会退出,您可能想在 hybrid_cost <= standard_cost 时尝试跳出循环

2)线条

if hybrid_cost==standard_cost:
    break

在你的while循环中与while中的条件语句是多余的

于 2013-04-01T20:22:33.067 回答
0

只有完全standard_cost等于时,您的循环才会停止hybrid_cost。你应该停止循环 if hybrid_cost <= standard_cost

于 2013-04-01T20:20:53.357 回答