-1

我今天在这里注册的原因是要求提示我在这个论点中哪里出错了。我对编码很陌生,希望能得到一些帮助。我觉得我这么早寻求帮助有点自欺欺人,所以如果有人能解释我在哪里犯了错误,我想尝试找出如何纠正它们,线索和提示将不胜感激,但我真的很喜欢了解错误在哪里纠正错误以及原因,所以请不要只是粘贴答案。谢谢

好的,这是我编写汽车推销员程序的尝试,用户输入汽车的基本价格。该计划应增加一系列额外费用,例如税费、许可证、经销商准备费和目的地费用。使税收和许可证占基本价格的百分比。其他费用应设定值。应用所有附加功能后,显示汽车的实际价格。

    base_price = float(input("please enter base price of car",))

    taxes *=0.06
    float(input(taxes))
    licence *= 0.01
    float(input(licence))

    premium_pack += 1250
    print("premium pack + 1250")

    total_price = base_price + premium_pack + taxes + licence

    print("\n\total price:", total_price))

    input("\n\npress enter key to exit")

我上次运行程序时出现名称错误

    taxes *= 0.06
    NamError: name 'taxes' is not defined

好的,我希望这些信息对您有所帮助,并提前感谢您的时间

亚历克斯

4

5 回答 5

4

taxes*=0.06是 的简写taxes = taxes * 0.06。您尚未定义。我想你真正想写的是

taxes = base_price * 0.06

但是,您仍然会遇到此程序的其他问题。

于 2013-10-14T18:49:43.687 回答
1

您似乎不清楚*=and+=运算符的作用。您想要的是分配 taxes(和其他变量)一些等于等的值base_price * 0.06。使用=运算符将​​值分配给变量(就像您在第一行中所做的那样),并使用*运算符将​​两个值相乘(例如base_price * 0.06)。

你在几个地方都遇到了这个问题,还有一个我认为你不知道input函数做什么的问题:如果你只想显示一个值,你应该使用printfunction

我强烈建议阅读教程。他们很好地涵盖了这类东西。

于 2013-10-14T18:50:30.410 回答
1

tax *= 0.06 是 tax = tax * 0.06 的简写,即新税值是旧税值的 0.06 倍。因此,解释器抱怨您在右侧使用税收之前没有定义税收。

大概你想要的是:

taxes = 0.06 * base

或者

taxes = 0.06 * float(raw_input('Enter amount to be taxed'))
于 2013-10-14T18:52:32.673 回答
0
  1. 您错误地使用了*=and+=语句。
  2. 除非您之前已定义,否则您不能使用该taxes *=0.06语句taxeslicence和的情况也是如此premium_pack
  3. 此外,该语句float(input(taxes))是错误的,您需要将一个字符串作为参数传递给它。(http://docs.python.org/3/library/functions.html#input
  4. 接下来,如果您使用的是python 2.7,则输入语句的用法不正确-您应该raw_input改用。(https://stackoverflow.com/a/3800862/1860929
  5. print("\n\total price:", total_price))语句中有一个额外的右括号
  6. 您使用的是额外的\\n因此t,总数将被转义。
  7. 最后,您需要检查逻辑本身。正如@Wayne 在他的回答中指出的那样,您可能想做taxes = base_price * 0.06而不是taxes = taxes * 0.06

检查以下代码,我认为您正在寻找类似的东西

base_price = float(raw_input("Please enter base price of car",))

taxes = 0.06 * base_price
print("Taxes: %s" %taxes)

licence = 0.01 * base_price
print("Licence: %s" %licence)

premium_pack = 1250
print("premium pack: 1250")

total_price = base_price + premium_pack + taxes + licence

print("\ntotal price: %s" %total_price)

raw_input("\n\npress enter key to exit")
于 2013-10-14T18:51:34.263 回答
0

这条线的taxes *= 0.06意思是,taxes = taxes * 0.06。Python 告诉你它不知道税的价值是什么(因为你没有给它赋值)。

licencepremium_pack有同样的问题。

于 2013-10-14T18:52:28.607 回答