精华内容
下载资源
问答
  • Python数字转换中文大写

    千次阅读 2020-10-15 19:22:08
    关键在于如何解决10100中0的描述,通过判断上一位的值是否为‘’零‘’,具体看代码: list1 = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖', '拾'] list2 = ['圆', '拾', '佰', '仟', '萬'] ...

    关键在于如何解决10100中0的描述,通过判断上一位的值是否为‘’零‘’,具体看代码:

    list1 = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖', '拾']
    list2 = ['圆', '拾', '佰', '仟', '萬']
    money = input("请输入金额:")
    money2 = ''
    for i in range(0, len(money)):
        if int(money[i]) != 0:
            money2 += list1[int(money[i])]+list2[len(money)-i-1]
        else:
            if money2[-1] != "零":
                money2 += "零"
    if money2[-1] == "零":
        print(money2[0:len(money2)-1]+"圆整")
    else:
        print(money2+"整")
    
    展开全文
  • python 数字转换大写

    2020-11-24 06:57:59
    在会计的时候,用到将数字转换大写,也就是讲数字转为汉字外汇出入金流程https://www.fx61.com/supportclass cnumber:cdict = {}gdict = {}xdict = {}def __init__(self):self.cdict = {1: u'', 2: u'拾', 3: u'佰...

    在会计的时候,用到将数字转换为大写,也就是讲数字转为汉字

    外汇出入金流程https://www.fx61.com/supportclass cnumber:

    cdict = {}

    gdict = {}

    xdict = {}

    def __init__(self):

    self.cdict = {1: u'', 2: u'拾', 3: u'佰', 4: u'仟'}

    self.xdict = {1: u'元', 2: u'万', 3: u'亿', 4: u'兆'} # 数字标识符

    self.gdict = {0: u'零', 1: u'壹', 2: u'贰', 3: u'叁', 4: u'肆', 5: u'伍', 6: u'陆', 7: u'柒', 8: u'捌', 9: u'玖'}

    def csplit(self, cdata): # 拆分函数,将整数字符串拆分成[亿,万,仟]的list

    g = len(cdata) % 4

    csdata = []

    lx = len(cdata) - 1

    if g > 0:

    csdata.append(cdata[0:g])

    k = g

    while k <= lx:

    csdata.append(cdata[k:k + 4])

    k += 4

    return csdata

    def cschange(self, cki): # 对[亿,万,仟]的list中每个字符串分组进行大写化再合并

    lenki = len(cki)

    i = 0

    lk = lenki

    chk = u''

    for i in range(lenki):

    if int(cki[i]) == 0:

    if i < lenki - 1:

    if int(cki[i + 1]) != 0:

    chk = chk + self.gdict[int(cki[i])]

    else:

    chk = chk + self.gdict[int(cki[i])] + self.cdict[lk]

    lk -= 1

    return chk

    def cwchange(self, data):

    cdata = str(data).split('.')

    cki = cdata[0]

    if len(cdata) == 1:

    i = 0

    chk = u''

    cski = self.csplit(cki) # 分解字符数组[亿,万,仟]三组List:['0000','0000','0000']

    ikl = len(cski) # 获取拆分后的List长度

    # 大写合并

    for i in range(ikl):

    if self.cschange(cski[i]) == '': # 有可能一个字符串全是0的情况

    chk = chk + self.cschange(cski[i]) # 此时不需要将数字标识符引入

    else:

    chk = chk + self.cschange(cski[i]) + self.xdict[ikl - i] # 合并:前字符串大写+当前字符串大写+标识符

    chk = chk + u'整'

    else:

    i = 0

    chk = u''

    cski = self.csplit(cki) # 分解字符数组[亿,万,仟]三组List:['0000','0000','0000']

    ikl = len(cski) # 获取拆分后的List长度

    # 大写合并

    for i in range(ikl):

    if self.cschange(cski[i]) == '': # 有可能一个字符串全是0的情况

    chk = chk + self.cschange(cski[i]) # 此时不需要将数字标识符引入

    else:

    chk = chk + self.cschange(cski[i]) + self.xdict[ikl - i] # 合并:前字符串大写+当前字符串大写+标识符

    # 处理小数部分

    ckj = cdata[1]

    lenkj = len(ckj)

    if lenkj == 1: # 若小数只有1位

    if int(ckj[0]) == 0:

    chk = chk + u'整'

    else:

    chk = chk + self.gdict[int(ckj[0])] + u'角整'

    else: # 若小数有两位的四种情况

    if int(ckj[0]) == 0 and int(ckj[1]) != 0:

    chk = chk + u'零' + self.gdict[int(ckj[1])] + u'分'

    elif int(ckj[0]) == 0 and int(ckj[1]) == 0:

    chk = chk + u'整'

    elif int(ckj[0]) != 0 and int(ckj[1]) != 0:

    chk = chk + self.gdict[int(ckj[0])] + u'角' + self.gdict[int(ckj[1])] + u'分'

    else:

    chk = chk + self.gdict[int(ckj[0])] + u'角整'

    return chk

    if __name__ == '__main__':

    pt = cnumber()

    print(pt.cwchange('14524')) # 壹万肆仟伍佰贰拾肆元整

    展开全文
  • python 数字转换汉字大写

    千次阅读 2020-08-25 09:21:14
    在会计的时候,用到将数字转换大写,也就是讲数字转为汉字 class cnumber: cdict = {} gdict = {} xdict = {} def __init__(self): self.cdict = {1: u'', 2: u'拾', 3: u'佰', 4: u'仟'} self.xdict = {1:...

    在会计的时候,用到将数字转换为大写,也就是讲数字转为汉字

    class cnumber:
        cdict = {}
        gdict = {}
        xdict = {}
    
        def __init__(self):
            self.cdict = {1: u'', 2: u'拾', 3: u'佰', 4: u'仟'}
            self.xdict = {1: u'元', 2: u'万', 3: u'亿', 4: u'兆'}  # 数字标识符
            self.gdict = {0: u'零', 1: u'壹', 2: u'贰', 3: u'叁', 4: u'肆', 5: u'伍', 6: u'陆', 7: u'柒', 8: u'捌', 9: u'玖'}
    
        def csplit(self, cdata):  # 拆分函数,将整数字符串拆分成[亿,万,仟]的list
            g = len(cdata) % 4
            csdata = []
            lx = len(cdata) - 1
            if g > 0:
                csdata.append(cdata[0:g])
            k = g
            while k <= lx:
                csdata.append(cdata[k:k + 4])
                k += 4
            return csdata
    
        def cschange(self, cki):  # 对[亿,万,仟]的list中每个字符串分组进行大写化再合并
            lenki = len(cki)
            i = 0
            lk = lenki
            chk = u''
            for i in range(lenki):
                if int(cki[i]) == 0:
                    if i < lenki - 1:
                        if int(cki[i + 1]) != 0:
                            chk = chk + self.gdict[int(cki[i])]
                else:
                    chk = chk + self.gdict[int(cki[i])] + self.cdict[lk]
                lk -= 1
            return chk
    
        def cwchange(self, data):
            cdata = str(data).split('.')
            cki = cdata[0]
            if len(cdata) == 1:
                i = 0
                chk = u''
                cski = self.csplit(cki)  # 分解字符数组[亿,万,仟]三组List:['0000','0000','0000']
                ikl = len(cski)  # 获取拆分后的List长度
                # 大写合并
                for i in range(ikl):
                    if self.cschange(cski[i]) == '':  # 有可能一个字符串全是0的情况
                        chk = chk + self.cschange(cski[i])  # 此时不需要将数字标识符引入
                    else:
                        chk = chk + self.cschange(cski[i]) + self.xdict[ikl - i]  # 合并:前字符串大写+当前字符串大写+标识符
                chk = chk + u'整'
            else:
                i = 0
                chk = u''
                cski = self.csplit(cki)  # 分解字符数组[亿,万,仟]三组List:['0000','0000','0000']
                ikl = len(cski)  # 获取拆分后的List长度
                # 大写合并
                for i in range(ikl):
                    if self.cschange(cski[i]) == '':  # 有可能一个字符串全是0的情况
                        chk = chk + self.cschange(cski[i])  # 此时不需要将数字标识符引入
                    else:
                        chk = chk + self.cschange(cski[i]) + self.xdict[ikl - i]  # 合并:前字符串大写+当前字符串大写+标识符
                # 处理小数部分
                ckj = cdata[1]
                lenkj = len(ckj)
                if lenkj == 1:  # 若小数只有1位
                    if int(ckj[0]) == 0:
                        chk = chk + u'整'
                    else:
                        chk = chk + self.gdict[int(ckj[0])] + u'角整'
                else:  # 若小数有两位的四种情况
                    if int(ckj[0]) == 0 and int(ckj[1]) != 0:
                        chk = chk + u'零' + self.gdict[int(ckj[1])] + u'分'
                    elif int(ckj[0]) == 0 and int(ckj[1]) == 0:
                        chk = chk + u'整'
                    elif int(ckj[0]) != 0 and int(ckj[1]) != 0:
                        chk = chk + self.gdict[int(ckj[0])] + u'角' + self.gdict[int(ckj[1])] + u'分'
                    else:
                        chk = chk + self.gdict[int(ckj[0])] + u'角整'
            return chk
    
    if __name__ == '__main__':
        pt = cnumber()
        print(pt.cwchange('14524'))  # 壹万肆仟伍佰贰拾肆元整
    
    
    展开全文
  • python数字转换成中文大写

    千次阅读 2021-03-24 21:05:00
    数字转换成中文大写,例如:1->一 ,25->二十五,49->四十九 Parameters ---------- intnumber : TYPE DESCRIPTION. Returns ------- TYPE DESCRIPTION. ''' numberList = ['零','一','二.
    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

     

     

    展开全文
  • 今天有人在群里问到Python怎么把小写数字转换成中文大写字符,觉得这个问题很有趣,于是想了一下,就开始写代码了。以下是代码,感觉不足的地方就是如果是1001元,那么就会转换 壹仟零佰零拾壹圆,多了个零。这...
  • 主要介绍了Python实现把数字转换成中文,一般用于数字金额转中文大写金额,即将阿拉伯数字转换大写中文,需要的朋友可以参考下
  • 将阿拉伯数字转换大写数字,主要解决小数点问题,
  • Python实现将数字转换大写中文

    千次阅读 2020-07-09 18:28:25
    实现代码一 ...import re from decimal import Decimal, ROUND_HALF_UP ZH_HANS_MAP = dict(zip(range(10), "零壹贰叁肆伍陆柒捌玖")) def verbose_price(cost): cost = Decimal(cost).quantize(Decimal('0.00'), ...
  • def digital_to_chinese(digital):str_digital = str(digital)chinese = {'1': '壹', '2': '贰', '3': '叁', '4': '肆', '5': '伍', '6': '陆', '7': '柒', '8': '捌', '9': '玖', '0': '零'}chinese2 = ['拾', '佰'...
  • python数字转换成中文大写

    千次阅读 2017-03-31 10:54:14
    python数字转换成中文大写代码#-*- coding:utf-8 -*- count_map = {1:1, 2:10, 3:100, 4:1000, 5:10000} #用来统计传入数值的级别 def set_to_chinese(money, s): end_map = {10:u'拾',100:u'佰',1000:u'仟',10000:...
  • 1. 通过定义一个字典进行阿拉伯数字大写中文的对比储存 2. 将用户的输入首先分割为整数与小数部分分别进行处理 3. 整数部分可以分割为以 4 位数字为一组的列表来进行转换处理,这样便于进行 (兆,亿,万,圆)。...
  • 利用Python将阿拉伯数字转化为中文大写,其实最麻烦...每个字符串最多4个字符,然后对每个分位的字符串用大写函数转换成大写,最后合并,这样等于缩减了问题,处理就相对简单了。#!/usr/bin/env python# -*- coding...
  • 本文实例为大家分享了python实现人民币大写转换的具体代码,供大家参考,具体内容如下 #!/usr/bin/python # -*- coding:utf-8 -*- # ********* 转换方法介绍 ********* # 将需要转换数字从右向左,每4位分成一个...
  • 主要介绍了Python实现中文数字转换为阿拉伯数字的方法,涉及Python字符串遍历、转换相关操作技巧,需要的朋友可以参考下
  • 题:输入一个数字转换成中文大写的写法可运行的程序(Python 2.7.9):1 #-*- coding: utf-8 -*- #在python2的py文件里面写中文,必须要添加一行声明文件编码的注释,否则python2会默认使用ASCII编码2 dic_num={"0":...
  • 1 '''2 人民币数字大写汉字3 '''45 #coding: utf-86 importwarnings7 from decimal importDecimal89 def cncurrency(value, capital=True, prefix=False, classical=None):10 '''11 参数:12 capital: True 大写...
  • 学习python语言不但可以在解决工作中的...阿拉伯数字转换成大写汉字Python代码,一起来看下。def IIf( b, s1, s2):if b:return s1else:return s2def num2chn(nin=None):cs =('零','壹','贰','叁','肆','伍','陆...
  • Python编写数字转换成中文大写

    千次阅读 2021-09-15 22:33:34
    问题描述:输入一串数字金额,然后打印出它的中文大写。 利用列表下标进行转换。 list1 = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖', '拾'] list2 = ['圆', '拾', '佰', '仟', '萬'] money ...
  • python数字金额转换中文大写金额编写一函数,将数字金额转换中文大写金额。设最高位考虑到亿,最低位考虑到分(如:数字金额为1023.445,转换中文大写金额为:壹仟零佰贰拾叁元肆角伍分)。输入:一个数字金额...
  • '''把一个浮点数分解整数部分和小数部分字符串num 需要被分解的浮点数返回分解出来的整数部分和小数部分。第一个数组元素是整数部分,第二个数组元素是小数部分'''def divide(num):# 将一个浮点数强制类型转换为...
  • 每个字符串最多4个字符,然后对每个分位的字符串用大写函数转换成大写,最后合并,这样等于缩减了问题,处理就相对简单了。本来想利用数字形式直接再函数里处理,没想到过百亿后在函数调用时小数...
  • 这种情况下,采用拆分法则,将一个大数字,先拆分成整数部分和小数部分,再对整数部分按照仟、万、亿、兆分位拆分为四个字符串组成的List,每个字符串最多4个字符,然后对每个分位的字符串用大写函数转换成大写,...
  • 今天有人在群里问到Python怎么把小写数字转换成中文大写字符,觉得这个问题很有趣,于是想了一下,就开始写代码了。以下是代码,感觉不足的地方就是如果是1001元,那么就会转换 壹仟零佰零拾壹圆,多了个零。这...
  • 将金额数字转化为大写,格式规范标准。① 当没有零头时自动加xxxx元整 ② 小数能够精确到角、分、厘 ③ 能够处理1亿一下金额数字 ④ 使用方法:numToBig(金额),返回大写字符串

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 55,641
精华内容 22,256
关键字:

python数字转换中文大写

python 订阅