我目前正在使用singpath.com练习我的python,但我遇到了一个问题:
预期结果是:
>>>CurryPuff(3)
3.60
>>>CurryPuff(3,'Fish')
4.2
这是我尝试过的:
def CurryPuff(x,typePuff):
if(typePuff==''):
return x*1.2
if(typePuff=='Fish'):
return x*1.4
但它给了我这个错误:
TypeError: CurryPuff() takes exactly 2 arguments (1 given)
我曾尝试谷歌搜索,但我不太确定使用的关键词是什么,所以希望能从这里得到帮助。
感谢。
答案 0 :(得分:16)
如果期望为2,则不能使用1参数调用函数,如CurryPuff()
那样。但是,您可以定义在未传递参数时使用的默认参数:
def CurryPuff(x, typePuff=None):
if typePuff is None:
# and so on...
您可以使用任何参数的任何值执行此操作。如果定义了默认值,则只能省略参数。