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)
问问题
527 次
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 回答