Мне нужно определить функцию 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 (), которая принимает именованные аргументы, представляющие количество различных монет США (четверти, десять центов, никелей и пенни) - каждый из аргументов должен иметь значение по умолчанию 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