题解 | #人民币转换#
人民币转换
https://www.nowcoder.com/practice/00ffd656b9604d1998e966d555005a4b
wy = ['亿', '万'] qbs = ['仟', '佰', '拾'] d = {'1': '壹', '2': '贰', '3': '叁', '4': '肆', '5': '伍', '6': '陆', '7': '柒', '8': '捌', '9': '玖'} def form_str(str1): s = '' if len(str1) == 4: if str1[0] == '0': s += '零' str1 = str1[1:] else: s += d[str1[0]] + qbs[0] str1 = str1[1:] if len(str1) == 3: if str1[0] == '0' and s[-1] != '零': s += '零' str1 = str1[1:] elif str1[0] == '0' and s[-1] == '零': str1 = str1[1:] else: s += d[str1[0]] + qbs[1] str1 = str1[1:] if len(str1) == 2: if str1[0] == '0' and s[-1] != '零': s += '零' str1 = str1[1:] elif str1[0] == '0' and s[-1] == '零': str1 = str1[1:] elif str1[0] == '1': s += qbs[2] str1 = str1[1:] else: s += d[str1[0]] + qbs[2] str1 = str1[1:] if len(str1) == 1: if str1 == '0': str1 = '' else: s += d[str1[0]] str1 = '' if str1 == '' and s != '': if s[-1] == '零': return s[:-1] return s def main(): l = ['仟亿', '佰亿', '拾亿', '亿', '仟万', '佰万', '拾万', '万', '仟', '佰', '拾', '个'] r = ['角', '分'] rmb = input().split('.') # rmb = '0.85'.split('.') rmb_l = rmb[0] rmb_r = rmb[1] res = [] while len(rmb_l): res.append(rmb_l[-4:]) rmb_l = rmb_l[:-4] ss = res rr = '' if len(ss) == 3: rr += form_str(ss.pop()) + '亿' if len(ss) == 2: rr += form_str(ss.pop()) + '万' if len(ss) == 1: rr += form_str(ss.pop()) tt = '' if len(rmb_r) == 2: if rmb_r[0] == '0': rmb_r = rmb_r[1:] else: tt += d[rmb_r[0]] + '角' rmb_r = rmb_r[1:] if len(rmb_r) == 1: if rmb_r[0] == '0': rmb_r = '' else: tt += d[rmb_r[0]] + '分' rmb_r = '' if tt == '': rr += '元整' elif rr != '': rr += '元' + tt else: rr += tt print('人民币'+rr) main()