Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 定义一个函数,该函数将不同美国硬币的计数作为参数,并打印出所需的最简单数量的纸币和硬币_Python_Python 3.x_Arguments_Currency_Consolidation - Fatal编程技术网

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

Python 定义一个函数,该函数将不同美国硬币的计数作为参数,并打印出所需的最简单数量的纸币和硬币,python,python-3.x,arguments,currency,consolidation,Python,Python 3.x,Arguments,Currency,Consolidation,我需要定义一个函数consolidate_change,它以不同美国硬币的计数作为参数(类似于前面的函数),并打印出生成该金额所需的最简单数量的纸币和硬币 例如,当使用10个25美分、9个10美分、8个5美分和7个便士的参数调用时,函数应打印: 金额:3美元 季度数:3 一角硬币数量:1 镍币数量:0 便士数:2 总额:3.87美元 根据家庭作业,我还必须使用上一节中使用的value\u of_change()方法 *第二步是我唯一需要帮助的部分,除非问题出在我的\u change()方法的值上

我需要定义一个函数consolidate_change,它以不同美国硬币的计数作为参数(类似于前面的函数),并打印出生成该金额所需的最简单数量的纸币和硬币

例如,当使用10个25美分、9个10美分、8个5美分和7个便士的参数调用时,函数应打印:

金额:3美元 季度数:3 一角硬币数量:1 镍币数量:0 便士数:2 总额:3.87美元

根据家庭作业,我还必须使用上一节中使用的value\u of_change()方法

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

我们尝试了几个不同的函数,但我的导师没有写我的value of_change()方法,我写了,所以我不知道他是按照我的思路写的,我也没有按照他的思路写

上一步的代码:定义一个函数value of_change(),该函数接受表示不同美国硬币(25美分、10美分、5美分和1美分)数量的命名参数——每个参数的默认值应为0。该函数应返回这些硬币的总价值(以美元为单位)。例如,5个25美分、4个10美分、3个5美分和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个25美分、9个10美分、8个5美分和7个便士的参数调用时,函数应打印:

金额:3美元 季度数:3 一角硬币数量:1 镍币数量:0 便士数:2 总额:3.87美元 在此计算中,必须使用\u change()方法的上一个值\u。提示:考虑将硬币转换成一大堆便士,然后确定可以将它们分成多少(整数)美元。然后把这些硬币放在一边,确定你能用剩下的硬币挣多少(整数)个25美分,等等

# 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
以下是我的尝试:

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
,因为你不能有硬币的分数(至少在法律上是这样:))