定义一个函数,该函数将不同美国硬币的数量作为参数,并打印出所需的最简单的纸币和硬币数量

时间:2019-05-13 01:07:19

标签: python python-3.x arguments currency consolidation

我需要定义一个功能solid_change,将不同美国硬币的计数作为参数(类似于先前的功能),并打印出达到该数量所需的最简单的纸币和硬币数量。

例如,当调用带有10个四分之一,9个角钱,8个镍币和7个便士的参数的函数时,该函数应显示:

美元数量:3 宿舍数:3 角数:1 镍数:0 便士数量:2 总金额:3.87美元

根据作业,我还必须使用上一节中使用的value_of_change()方法

*第二步是我唯一需要帮助的部分,除非问题出在我的value_of_change()方法上

我们尝试了几种不同的功能,但我的导师没有写我做过的value_of_change()方法,所以我不让他跟随我的思路,也没有跟随他

上一步中的我的代码:定义一个函数value_of_change(),该函数接受表示不同美国硬币(四分之一,一角硬币,一分硬币和一分硬币)数量的命名自变量-每个自变量的默认值应为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)

第二步: 定义一个功能solid_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

1 个答案:

答案 0 :(得分:1)

这是我的尝试:

def consolidate_change(change):
    coins_to_use=[]
    coins = [1, .25, .1, .05, .01]
    for coin in coins:
        coins_to_use.append(int(change//coin))
        change = change%coin
    print(f"Dollars: {coins_to_use[0]}\n Quarters: {coins_to_use[1]}\n Dimes:{coins_to_use[2]}\n Nickels: {coins_to_use[3]}\n Pennies:{coins_to_use[4]} ")

consolidate_change(3.87)

输出: enter image description here