一个面试题,考查面试者的逻辑思维能力,考虑的问题很多,把一个用阿拉伯数字表示的正整数转换成汉字大写表示
这里代码没有考虑非法输入,但如果是面试。最好跟面试官交流清楚,展现你考虑问题全面,写出的代码鲁棒性强
比如:输入的数带符号,输入的数不是整数,是小数,是负数,或者压根就不是数值,或者是空值等等
主要功能为:比如1201001 转换成:壹佰贰拾万壹仟零壹
1200000 转换成:壹佰贰拾万
下面上代码:
#第一步:按4位4位的分开
#第二步:对分开的每一个对象汉字化
#第三步:把每个分开的list拼接起来
def NumberToChinese(data):
Adict = {1:u'', 2:u'万', 3:u'亿', 4:'兆'}
cdata = '%d' %data
length = len(cdata)
result = u''
numberOfSplit = SplitNumber(cdata)
lenOfSplit = len(numberOfSplit)
for i in range(lenOfSplit):
result = result + ToChinese(numberOfSplit[i]) + Adict[lenOfSplit - i]
return result
def SplitNumber(cdata):
length = len(cdata)
g = length % 4
csdata