Hot For Coding
Python写的一个按面值找零钱的程序

前两天写了一个《Python写的一个自动售饮料小程序》,今天尝试Python写的一个按面值找零钱的程序。

按照我们正常的思维逻辑从大面值到小面值的找零方法,人民币面值有100元,50元,20元,10元,5元,1元,5角,1角,而程序也相应的设置了这些面值。只需要调用函数时传入您想要找零的金额,程序会自动算各个面值的钱应该找多少张。如传入50元,则系统自动算出找零50元一张面值,如果传入60块7毛,则程序自动算出该找零50元一张,10元一张,5角一张,1角两张。

运行环境: Python 2.7

# encoding=UTF-8
 
def change(money):
  loop=True
  tmp=['总金额:'+str(money)+'元']
    
  # 面值列表 单位:元
  cate=(
    100,
    50,
    20,
    10,
    5,
    1,
    0.5,
    0.1
  )
     
  sy=int(money*10)
  while loop:
    if sy==0:
      loop=False
    else:
      for row in cate:
        tmpStr = ''
        jine=int(row*10)
        if jine>=10:
          tmpUn = '元'
        else:
          tmpUn = '角'
                
        if sy>=jine and tmpStr=='':
          m = sy//jine
          sy = sy%jine
          if jine>=10:
            tmpStr = str(jine//10)+tmpUn+str(m)+'张'
          else:
            tmpStr = str(jine)+tmpUn+str(m)+'张'
          tmp.append(tmpStr)
      
    return tmp
 
a = change(88.7)
for x in a:
  print x

测试一下

总金额:88.7元
50元1张
20元1张
10元1张
5元1张
1元3张
5角1张
1角2张

TITLE: Python写的一个按面值找零钱的程序

LINK: https://www.qttc.net/270_python_auto_change_by_cash_denomination.html

NOTE: 转载内容请注明出处