【问题标题】:Define a function that takes as arguments counts of different US coins and prints out the simplest number of bills and coins needed定义一个函数,将不同美国硬币的数量作为参数,并打印出所需的最简单的纸币和硬币数量
【发布时间】: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


【解决方案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)

输出:

【讨论】:

  • 可能需要将除法类型转换为int,因为你不能拥有硬币的一小部分(至少不合法:))
猜你喜欢
  • 1970-01-01
  • 2011-05-11
  • 1970-01-01
  • 1970-01-01
  • 2020-05-09
  • 2019-07-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多