python 把数字转换成中文大写

def conversionString(intnumber):
    '''
    把数字转换成中文大写,例如:1->一 ,25->二十五,49->四十九

    Parameters
    ----------
    intnumber : TYPE
        DESCRIPTION.

    Returns
    -------
    TYPE
        DESCRIPTION.

    '''
    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 删除结尾的所有零
    string = string.rstrip('零')
    if(intnumber>=10 and intnumber<20):
      return  string[1:]
    return string

 

 

相关推荐

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:精致技术 设计师:CSDN官方博客 返回首页

打赏作者

绀目澄清

你的鼓励

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值