Python 将货币拆分为纸币的函数
我必须写一个函数,以“金额”作为参数。然后将“金额”作为用户输入,并将值传递给函数参数。之后,我们必须实现该功能,并计算如何将这些货币拆分为500、100、50、20、10、5、2和1塔卡纸币。 然后在函数调用中打印返回的值 如果货币是1234,则函数应返回:Python 将货币拆分为纸币的函数,python,Python,我必须写一个函数,以“金额”作为参数。然后将“金额”作为用户输入,并将值传递给函数参数。之后,我们必须实现该功能,并计算如何将这些货币拆分为500、100、50、20、10、5、2和1塔卡纸币。 然后在函数调用中打印返回的值 如果货币是1234,则函数应返回:“500塔卡:2张钞票100塔卡:2张钞票20塔卡:1张钞票10塔卡:1张钞票2塔卡:2张钞票” 我试过: def splitting_money(amount): five_hundred = int(amount/50
“500塔卡:2张钞票100塔卡:2张钞票20塔卡:1张钞票10塔卡:1张钞票2塔卡:2张钞票”
我试过:
def splitting_money(amount):
five_hundred = int(amount/500)
one_hundred = int((amount%500)/100)
fifty = int(((amount%500)%100)/50)
twenty = int((((amount%500)%100)%50)/20)
ten = int(((((amount%500)%100)%50)%20)/10)
five = int((((((amount%500)%100)%50)%20)%10)/5)
two = int(((((((amount%500)%100)%50)%20)%10)%5)/2)
one = int((((((((amount%500)%100)%50)%20)%10)%5)%2)/1)
if amount < 500:
print ("100 Taka: ",one_hundred,"note(s)","\n", "50 Taka: ",fifty,"note(s)","\n", "20 Taka: ",twenty,"note(s)","\n", "10 Taka: ",ten,"note(s)","\n", "5 Taka: ",five,"note(s)","\n", "2 Taka: ",two,"note(s)","\n", "1 Taka: ",one,"note(s)")
elif amount >= 500:
print ("500 Taka: ",five_hundred,"note(s)","\n","100 Taka: ",one_hundred,"note(s)","\n", "50 Taka: ",fifty,"note(s)","\n", "20 Taka: ",twenty,"note(s)","\n", "10 Taka: ",ten,"note(s)","\n", "5 Taka: ",five,"note(s)","\n", "2 Taka: ",two,"note(s)","\n", "1 Taka: ",one,"note(s)") '\n' splitting_money(1234)
这看起来不整洁。我该怎么办?使用divmod
def to_notes(val,notes):
remainder = val
results = {}
for _n in notes:
n,remainder = divmod(remainder,_n)
results[_n]=n
return results
results = to_notes(1475,[500,100,50,20,10,5,1])
格式化很简单
' '.join([f'{k} taka {v} note(s)' for k,v in results.items() if v > 0])
“看起来不整洁”实际上是什么意思?我建议您在寻找代码审查时使用。除非您考虑到特定的输出,否则这里没有实际问题
' '.join([f'{k} taka {v} note(s)' for k,v in results.items() if v > 0])