题解 | #人民币转换#
人民币转换
https://www.nowcoder.com/practice/00ffd656b9604d1998e966d555005a4b
dic = {0:'零',1:'壹',2:'贰',3:'叁',4:'肆',5:'伍',6:'陆',7:'柒',8:'捌',9:'玖'} def read_qian(n:int): qian = int(n / 1000) bai = int(n % 1000 / 100) shi = int(n % 100 / 10) ge = int(n % 10) #数为0 if n == 0: print('',end='') #千位 if qian: print(dic[qian]+'仟',end='') #百位 if bai: print(dic[bai]+'佰',end='') elif qian and shi: print('零',end='') #十位 if shi != 1 and shi != 0: print(dic[shi]+'拾',end='') elif shi == 1: print('拾', end='') elif shi == 0 and ge and (bai + qian): print('零',end='') #个位 if ge: print(dic[ge],end='') elif shi: print('',end='') def Read(n: int):#读亿、万 yi = int(n % 100000000000 / 100000000) wan = int(n % 100000000 / 10000) ge = int(n % 10000) read_qian(yi) if yi: print('亿', end='') read_qian(wan) if wan: print('万', end='') elif yi and ge: print('零', end='') read_qian(ge) def read2(n):#读尾数 if n == 0: print('',end='') shi = n // 10 ge = n % 10 read_qian(shi) if int(shi): print('角',end='') elif ge: print('',end='') read_qian(ge) if ge: print('分',end='') while True: try: n = str(float(input())) ls = n.split('.') n1 = int(ls[0]) n2 = int(ls[1]) if len(ls[1]) < 2: n2 = n2*10 print('人民币',end='') Read(n1) if n1: print('元', end='') if n2: read2(n2) else: print('整') except: break