【问题标题】:A little assistance with my program对我的程序有一点帮助
【发布时间】:2013-04-01 20:08:43
【问题描述】:

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

其他信息: 你的父母需要买一辆新车,他们正在努力 决定是否购买混合动力车。混合动力汽车 产生更少的二氧化碳排放并具有更好的燃油效率 与它们的非混合对应物相比。然而,混合 车辆也比非混合动力版本贵很多。 帮助您的父母决定使用哪种类型的车辆 购买(严格按照财务成本,不考虑环境 好处)。典型的家庭每年行驶 20,000 公里,目前汽油价格为 1.30 美元/升。

问题: 允许用户输入混合动力和非混合动力车辆的成本以及 这些车辆的综合燃油效率。另外,允许用户输入平均值
他们每年行驶的公里数(注意:平均为 20000 公里/年)。然后o
输出两辆车的成本相等需要多少年的所有权。
假设汽油价格保持在 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. "

【问题讨论】:

  • 在我的机器上工作(相反,它至少会产生输出)。你在使用 IDE 吗?您是否尝试过直接从命令行运行它?
  • 我正在使用 WingIDE。我试过直接从命令行运行它,它仍然无法正常工作。没有错误或任何东西,它只是停止并且不显示任何东西。其他代码虽然有效。这段代码有问题。也许是无限循环?我不确定。
  • 几个小时前你的一个同学刚刚就这个问题寻求帮助。
  • 完全清楚:您是否正在启动程序并且它立即不显示任何内容?或者,您是在启动程序,为四个用户输入提示输入值,然后它什么都不显示?
  • 我输入这四个值后,它说“正在执行命令。请等待结果”。然后什么都没有弹出。

标签: python


【解决方案1】:

我发现了几个问题:

1) 仅当 standard_cost 完全等于 hybrid_cost 时,您的循环才会退出 当 hybrid_cost 时,您可能想尝试打破循环

2) 线条

if hybrid_cost==standard_cost:
    break

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

【讨论】:

  • 问题是让我输出两辆车的成本相等需要多少年的所有权。那么它不会仍然是 hybrid_cost==standard_cost 吗?还有2)是什么意思
  • 另外,即使我使用了 hybrid_cost
  • 问题是,它可能不是确切的年数。假设在第 5 年混合成本为 5000 和标准 4900。在第 6 年它可能是混合 5500 和标准 6000。所以它永远不会是完全相同的数字。
  • 但是不能像1.2年吗?带小数之类的
  • in 2) 我的意思是你根本不需要这些行。一旦 hybrid_cost == 标准成本,while 循环就会退出。
【解决方案2】:

只有当standard_cost 恰好等于hybrid_cost 时,您的循环才会停止。如果hybrid_cost <= standard_cost,您应该停止循环。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-14
    相关资源
    最近更新 更多