-3
from cisc106_32 import*

def BillAmount(mb):


    if mb <= 50:
        price=50

    elif 50<mb<=400:
        price=(66.50+(.05)(mb-50.00))

    elif 400<mb<=1000:
        price=(72.00+(.08)(mb-50.00))

    else:
        price=100.00

    return price

assertEqual(BillAmount(45),50)

assertEqual(BillAmount(400),84)

assertEqual(BillAmount(2000),100)
4

3 回答 3

2

在大多数编程语言中,当将数字相乘时,您需要一个*. 例如:

result = (0.5) * (mb - 50.00)

(不像你写的数学result=(0.5)(y)(500)和隐含的乘法。)

于 2012-09-24T17:03:05.170 回答
1

您正在尝试将浮点数转换为函数:

(.05)(mb-50.00)

如果您打算将这两个值相乘,请使用*

(.05) * (mb-50.00)

插图:

>>> mb=51
>>> (.05)(mb-50.00)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'float' object is not callable
>>> (.05)*(mb-50.00)
0.050000000000000003
于 2012-09-24T17:03:34.517 回答
1

在 Python 中,()被认为是function operator.. 所以,如果你在 Python 中的任何单词上加上括号,它就会变成一个函数调用(嗯,虽然有一些例外,但这不是这里关心的问题)..

所以,如果你这样做: - (2)(5),你不是乘以 2 和 5,而是你试图调用一个2不存在的函数,参数5..

所以,*在这些括号之间添加一个(2)*(5)

于 2012-09-24T17:06:53.443 回答