【发布时间】:2019-05-13 01:07:18
【问题描述】:
我需要定义一个函数 consolidate_change,它将不同美国硬币的计数作为参数(类似于前面的函数),并打印出产生该金额所需的最简单的纸币和硬币数量。
例如,当使用 10 个硬币、9 个硬币、8 个镍币和 7 个便士的参数调用时,该函数应打印:
美元数:3 季度数:3 硬币数量:1 镍币数量:0 便士数:2 总金额:3.87 美元
根据作业,我还必须使用上一节中使用的 value_of_change() 方法
*第二步是我唯一需要帮助的部分,除非问题出在我的 value_of_change() 方法上
我们尝试了几个不同的函数,但我的导师没有编写我的 value_of_change() 方法,我这样做了,所以我不认为他遵循我的思路,我也没有遵循他的思路
我上一步的代码:定义一个函数 value_of_change(),该函数接受表示不同美国硬币(25美分硬币、15美分硬币、15美分硬币)数量的命名参数——每个参数的默认值都应该是 0 . 该函数应返回这些硬币的美元总值。例如,5 个硬币、4 个硬币、3 个镍币和 2 个便士的价值为 1.82 美元。
# defines a variable value_of_change assigning values to quarters, dimes, etc. including test to print
def value_of_change(quarters, dimes, nickels, pennies):
quarters_value = .25
dimes_value = .10
nickels_value = .05
pennies_value = .01
total = (quarters * quarters_value) + (dimes * dimes_value) + (nickels * nickels_value) + (pennies * pennies_value)
print(round(total, 2))
value_of_change(5, 4, 3, 2)
第二步: 定义一个函数 consolidate_change,该函数将不同美国硬币的数量作为参数(类似于前面的函数),并打印出产生该金额所需的最简单的纸币和硬币数量。
例如,当使用 10 个硬币、9 个硬币、8 个镍币和 7 个便士的参数调用时,该函数应打印:
美元数:3 季度数:3 硬币数量:1 镍币数量:0 便士数:2 总金额:3.87 美元 您必须在此计算中使用之前的 value_of_change() 方法。提示:考虑将硬币转换成一大堆便士,然后确定可以将它们分成多少(整数)美元。然后将这些便士放在一边,并确定您可以用其余的硬币制作多少(整数)四分之一,等等。
# My code (that isn't working) for the second step
def consolidate_change(change):
coins = [.25, .1, .05, .01]
value = 0
dollars = 1
quarters = 1
dimes = 1
nickels = 1
pennies = 1
#change value in pennies
for i in range (0, 4):
value = round((value + (change[i] * coins[i])), 2)
value = round(value)
#Dollars
for i in range (0, value):
if dollars/value == round(dollars/value):
dollars = dollars/value
else:
dollars += 1
value = round(value)
print (dollars)
consolidate_change([10, 9, 8, 7])
我应该得到一个结果
Number of dollars: 3
Number of quarters: 3
Number of dimes: 1
Number of nickels: 0
Number of pennies: 2
Total amount: $3.87
但是我目前的结果只是
1.0
【问题讨论】:
-
这是家庭作业吗?
-
“简单”是一个模棱两可的术语。你是说最小的吗?
-
啊,我错过了提到你的导师,所以这绝对是功课。
标签: python python-3.x arguments currency consolidation