从总价格中减去10%的折扣

时间:2016-03-25 04:00:28

标签: python-3.x

我是一名玩python的java程序员。所以,如果这看起来有点新手,那是因为它是。忍受我。

我正在尝试计算并从项目的总价格中减去10%。但是当我这样做时,它告诉我有数据类型不匹配。我知道在Java中我只使用nextInt()来区分类型和Scanner,我尝试使用Decimal()和int(),但解释器告诉我itemName的类型无法识别。我认为python在输入中内置了一个Scanner,可以检测原始字符串输入。

请帮忙

<code>
from decimal import Decimal
itemName = input()
itemPrice = Decimal(input())
itemQuantity = int(input())

if itemQuantity <= 10:
        print(itemQuantity,'x',itemName,'@ $',itemPrice)
        print('Total: $',itemQuantity*itemPrice)
else:
        discountMultplier = 0.1
        print(itemQuantity,'x',itemName,'@ $',itemPrice)
        print('Subtotal: $',itemQuantity*itemPrice)
        print('-10% Discount: $',(itemQuantity*itemPrice)*discountMultiplier)
        print('Total: $',itemQuantity*itemPrice-((itemQuantity*itemPrice)*discountMultiplier))</code>

1 个答案:

答案 0 :(得分:1)

你得到的原因:

Traceback (most recent call last):
  File "/Users/Tadhg/Documents/test.py", line 13, in <module>
    print('-10% Discount: $',(itemQuantity*itemPrice)*discountMultiplier)
TypeError: unsupported operand type(s) for *: 'decimal.Decimal' and 'float'
  • 下次请输入错误

是因为Decimal个对象(itemPrice)不能乘以float个对象(discountMultiplier),因为错误信息非常明显。

简短解决方案,将discountMultiplier设为十进制:

discountMultplier = Decimal('0.1')
          # ^ you are missing an i here

虽然因为上面提到的拼写错误我实际上得到了一个N​​ameError:

Traceback (most recent call last):
  File "/Users/Tadhg/Documents/test.py", line 13, in <module>
    print('-10% Discount: $',(itemQuantity*itemPrice)*discountMultiplier)
NameError: name 'discountMultiplier' is not defined

因此,请更多地关注您的错误消息,因为它们非常有用。