如何使函数打印更多结果?
How can I make function print more results?
所以我已经花了几个小时尝试做这个测试,我想使用元组和 divmod 函数为我的结果生成一个非常串联的方式,我终于找到了一个解决方案。
但我不明白为什么它只打印 1 个结果而不是多个..
这是我的代码:
def tilt(money):
amount = [(1,'dollar'),(0.25,'quarter'),(0.10,'dime'),(0.05,'nickel'),(0.01,'pennie')]
total = {}
for amount_value, amount_name in amount:
if money >= amount_value:
number_amount, money = divmod(money, amount_value)
total[amount_name] = number_amount
return total
print(tilt(10.65))
# result for this is {'dollar': 10.0}
# what I expect is {'dollar': 10, 'quarter': 2, 'dime': 1, 'nickel': 1}
我只是无法全神贯注于解决方案,我想避免进入无休止的 If-Else 代码来达到这一点。
我确定一定有一个我遗漏的简单解决方案,在此先感谢您的帮助..
我无法发表评论;但这可能取决于您的缩进。如果您将 return 语句与您的 for 循环放在一起 - 您将得到您正在寻找的响应。
所以如下:
def tilt(money):
amount = [(1, 'dollar'), (0.25, 'quarter'), (0.10, 'dime'),
(0.05, 'nickel'), (0.01, 'pennie')]
total = {}
for amount_value, amount_name in amount:
if money >= amount_value:
number_amount, money = divmod(money, amount_value)
total[amount_name] = number_amount
return total
所以我已经花了几个小时尝试做这个测试,我想使用元组和 divmod 函数为我的结果生成一个非常串联的方式,我终于找到了一个解决方案。 但我不明白为什么它只打印 1 个结果而不是多个.. 这是我的代码:
def tilt(money):
amount = [(1,'dollar'),(0.25,'quarter'),(0.10,'dime'),(0.05,'nickel'),(0.01,'pennie')]
total = {}
for amount_value, amount_name in amount:
if money >= amount_value:
number_amount, money = divmod(money, amount_value)
total[amount_name] = number_amount
return total
print(tilt(10.65))
# result for this is {'dollar': 10.0}
# what I expect is {'dollar': 10, 'quarter': 2, 'dime': 1, 'nickel': 1}
我只是无法全神贯注于解决方案,我想避免进入无休止的 If-Else 代码来达到这一点。 我确定一定有一个我遗漏的简单解决方案,在此先感谢您的帮助..
我无法发表评论;但这可能取决于您的缩进。如果您将 return 语句与您的 for 循环放在一起 - 您将得到您正在寻找的响应。
所以如下:
def tilt(money):
amount = [(1, 'dollar'), (0.25, 'quarter'), (0.10, 'dime'),
(0.05, 'nickel'), (0.01, 'pennie')]
total = {}
for amount_value, amount_name in amount:
if money >= amount_value:
number_amount, money = divmod(money, amount_value)
total[amount_name] = number_amount
return total