理论来讲可以无限扩展下去,只要有足够的单位.
number = 55443030100512
def conversionString(intnumber):
numberList = ['零','一','二','三','四','五','六','七','八','九']
unitList = ["","十","百","千","万",'十万','百万','千万','亿','十亿','百亿','千亿','万亿','兆']
# 转为字符串 获取传入字符串长度
strnumber = str(intnumber)
lennumber = len(strnumber)
# 如果长度等于1 则直接返回对应的各位数字
if lennumber == 1:
return numberList[intnumber]
# 如果不为一 也就不是个位数 则需要获取相关单位
string = ''
for i in range(lennumber):
# print('第{}次,string值为:{}'.format(i,string))
if int(strnumber[i]) != 0:
# 判断万出现的次数 如果多次删除现有的 万 字 防止出现 五十万二万 重复
for unit in ['万','亿']:
if string.count(unit) > 1:
print(string.count(unit))
string = string.replace(unit, '',1)
# 获取当前数字对应的汉字 + 单位
string = string + numberList[int(strnumber[i])]+unitList[lennumber - i - 1]
# 如果前一位也是零 那么直接跳出循环重新执行 //防止
elif int(strnumber[i - 1]) == 0:
continue
else:
# 如果都不是 也就是为 那么则直接加一个零
string = string+numberList[int(strnumber[i])]
# 返回值 // rstrip 删除结尾的所有零
return string.rstrip('零')
print(conversionString(number))
测试较少,如有bug请大佬指出.