Python⼊门练习0009:⼈民币⾦额打印
题⽬:⼈民币⾦额打印
银⾏在打印票据的时候,常常需要将阿拉伯数字表⽰的⼈民币⾦额转换为⼤写表⽰,现在请你来完成这样⼀个程序。
在中⽂⼤写⽅式中,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
python货币转换
if a<0:
print u'负'+S.decode('utf8')
else:
print S.decode('utf8')
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论