【问题标题】:python challenge help solving itpython挑战帮助解决它
【发布时间】:2013-10-14 18:46:38
【问题描述】:

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

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

    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

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

亚历克斯

【问题讨论】:

  • 定义税收,这将解决您的问题
  • 你觉得float(input(taxes))会做什么?

标签: python


【解决方案1】:

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

taxes = base_price * 0.06

不过,您仍然会在使用此程序时遇到其他问题。

【讨论】:

    【解决方案2】:

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

    大概你想要的是:

    taxes = 0.06 * base
    

    taxes = 0.06 * float(raw_input('Enter amount to be taxed'))
    

    【讨论】:

      【解决方案3】:

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

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

      我强烈建议您通过tutorials。他们在涵盖此类内容方面做得很好。

      【讨论】:

        【解决方案4】:

        taxes *= 0.06 表示taxes = taxes * 0.06。 Python 告诉你它不知道税收的价值是什么(因为你没有给它赋值)。

        licencepremium_pack 有同样的问题。

        【讨论】:

        • 谢谢你们的回复,是的,我正在使用 2.7 并且我正在阅读面向绝对初学者的“python 编程第 3 版”。我现在更清楚地了解我必须做什么并感谢反馈,当我完成任务后,如果可以的话,我会给最佳答案评分。但感谢所有人
        【解决方案5】:
        1. 您错误地使用了*=+= 语句。
        2. 您不能使用taxes *=0.06 语句,除非您之前定义了taxeslicencepremium_pack 也是如此。
        3. 另外,float(input(taxes)) 语句是错误的,您需要将字符串作为参数传递给它。 (http://docs.python.org/3/library/functions.html#input)
        4. 接下来,如果您使用的是python 2.7,输入语句的用法不正确-您应该改用raw_input。 (https://*.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")
        

        【讨论】:

        • "我们将不胜感激提供线索和提示,但我真的很想了解错误在哪里可以纠正错误以及原因,所以请不要只是粘贴答案。"
        • @HenryKeiter 正在编辑。