题目:人民币金额打印银行在打印票据的时候,常常需要将阿拉伯数字表示的人民币金额转换为大写表示,现在请你来完成这样一个程序。 在中文大写方式中,0到10以及100、1000、10000被依次表示为: 零壹贰叁肆伍陆柒捌玖拾佰仟万 以下的例子示范了阿拉伯数字到人民币大写的转换规则: 1 壹圆 11 壹拾壹圆 111 壹佰壹拾壹圆 101 壹佰零壹圆 -1000 负壹仟圆 1234567 壹佰贰拾叁万肆仟伍佰陆拾柒圆 现在给你一个整数a(|a|<100000000), 打印出人民币大写表示. 注意:请以Unicode的形式输出答案。你可以通过decode("utf8")来将utf8格式的字符串解码为Unicode,例如你要输出ans = "零圆", print ans.decode("utf8"). Note:数据已于2013-11-19日加强,原来通过的代码可能不能再次通过。答案:一个好的约定可以少些很多代码 #-*- coding:utf-8 -*- N = {0:'零',1:'壹',2:'贰',3:'叁',4:'肆',5:'伍',6:'陆',7:'柒',8:'捌',9:'玖'} M = ['亿','仟','佰','拾','萬','仟','佰','拾','圆'] while True: a = int(raw_input('please enter a number:')) if len(str(a))>9: print 'the number is to long' break b = abs(a) New =[] for st in str(b): if int(st) in N.keys(): New.append(N[int(st)]) L=M[-len(New):] S ='' for (x,y) in zip(New,L): S+=x+y if a<0: print u'负'+S.decode('utf8') else: print S.decode('utf8')
Python入门练习0009:人民币金额打印
最新推荐文章于 2022-09-16 18:54:39 发布