在python 3.5.1中混合关键字和默认参数

在python 3.5.1中混合关键字和默认参数,python,keyword,default-value,Python,Keyword,Default Value,我是一名新手,通过在线工作簿学习在线python课程。我似乎不知道如何让输出像下面的示例那样显示: 问题说明: 编写一个函数number_of_pennies(),该函数返回给定美元数和(可选)便士数的便士总数。例:5美元6便士返回506 以下是我所拥有的: def number_of_pennies(dollars = (),pennies=()) return number_of_pennies print(number_of_pennies(5, 6)) # Should pri

我是一名新手,通过在线工作簿学习在线python课程。我似乎不知道如何让输出像下面的示例那样显示:

问题说明: 编写一个函数number_of_pennies(),该函数返回给定美元数和(可选)便士数的便士总数。例:5美元6便士返回506

以下是我所拥有的:

def number_of_pennies(dollars = (),pennies=())

    return number_of_pennies
print(number_of_pennies(5, 6)) # Should print 506
print(number_of_pennies(4))    # Should print 400
多亏了您的帮助,我才将其更改为:

def number_of_pennies(dollars = 0,pennies=0):
    number_of_pennies= (dollars * 100) + pennies
    return number_of_pennies
print(number_of_pennies(5, 6)) # Should print 506
print(number_of_pennies(4))    # Should print 400

当调用方不提供值时,将使用默认参数。那么,默认值应该是什么?在您的情况下,如果用户不提供美元,零美元似乎是一个合理的选择。便士也一样。既然
numberofpennies(4)
应该是
400
,你就知道他们想要美元作为第一个参数。剩下的只是数学

number of pennies
只是函数名,返回该函数会很奇怪。事实上,当您尝试它时,您会得到类似于
的结果,这意味着函数返回了自己的函数对象。而是返回您计算的数据。。。那更有用

>>> def number_of_pennies(dollars=0, pennies=0):
...     return dollars * 100 + pennies
... 
>>> print(number_of_pennies(5,6))
506
>>> print(number_of_pennies(4))
400
def便士的数量(美元=0,便士=0):
返回美元*100+便士
打印(便士的数量(int(输入()),int(输入()))#美元和便士
仅打印(便士数(整数(输入()))#美元

将美元乘以100,再加上一分钱——这将是第一步。剩下的将是边缘案件处理。。为什么不先尝试一下,如果你仍然发现自己被卡住了,就编辑这个问题。为什么要使用空的
tuple
s(括号)作为美元和便士的默认值?如果有人没有把一美元或一分钱的金额传过来,那么使用
美元=0,便士=0是否更合理呢?谢谢大家!我听从了你的建议,结果成功了!欢迎来到stackoverflow。你能用几句话解释一下你的代码是做什么的吗?