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

时间:2016-03-23 17:28:19

标签: 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 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

2 个答案:

答案 0 :(得分:1)

当调用者未提供值时,将使用默认参数。那么,默认应该是什么?在您的情况下,如果用户不提供美元,零美元似乎是一个合理的选择。与便士相同。由于number_of_pennies(4)应为400,您知道他们希望将美元作为第一个参数。剩下的只是数学。

number_of_pennies只是函数的名称,这将是一件奇怪的事情。事实上,当你尝试它时,你得到像<function number_of_pennies at 0x7ff4e962d488>这样的东西,这意味着该函数返回了自己的函数对象。而是返回您计算的数据...这更有用!

>>> 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

答案 1 :(得分:0)

def number_of_pennies(dollars = 0, pennies = 0):
    return dollars * 100 + pennies

print(number_of_pennies(int(input()), int(input()))) # Both dollars and pennies
print(number_of_pennies(int(input())))               # Dollars only