汉字表示的大写数字金额

输入一个整数金额,输出汉字表示的大写金额。假设输入的金额数为正整数,且最大为12位数字。

输入格式:
输入一个正整数,表示金额,最大位数为12。

输出格式:
输出汉字表示的大写金额。输出的时候,从第一位数字开始,后面所有的位数都需要输出,包括0(零)。

输入样例:
123456789
结尾无空行
输出样例:
壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖圆
结尾无空行
输入样例:
987600020000
结尾无空行
输出样例:
玖仟捌佰柒拾陆亿零仟零佰零拾贰万零仟零佰零拾零圆


x=input("")
#代码开始
dict_num = {
    "0":"零"
,"1":"壹"
,"2":"贰"
,"3":"叁"
,"4":"肆"
,"5":"伍"
,"6":"陆"
,"7":"柒"
,"8":"捌"
,"9":"玖"
,"10":"拾"}
dict_danwei = ["","拾","佰","仟"]
dict_danwei2 = ["元","万","亿","兆"]
x2 = x [::-1]
strr = ""
i = 0
# 对字符串做转换
for ii in x2:
    if i%4 == 0:
      if ii != "0":
        strr = dict_num[ii] + dict_danwei2[i//4] + strr
      else:
        strr = dict_danwei2[i//4] + strr
    else:
      if ii != "0":
        strr = dict_num[ii]+dict_danwei[i%4] + strr
      else:
        strr = dict_num[ii] + strr
    i = i + 1

# 去掉多余的“零”
res = strr[0]
for k in range(1,len(strr)):
  if strr[k-1] == "零" and strr[k] == "零":
    continue
  if strr[k] == "零":
    if strr[k+1] == "元" or strr[k+1] == "万" or strr[k+1] == "亿" and strr[k+1] == "兆":
      continue
  res = res + strr[k]

#代码结束
print(res)

img


如果对你有帮助,可以点击我这个回答右上方的【采纳】按钮,给我个采纳吗,谢谢