如何把2274587.84如何快速的转换为大写:贰佰贰拾柒万肆仟伍佰捌拾柒元捌角肆分?(下篇)

Python进阶者
• 阅读 291

大家好,我是皮皮。

一、前言

前几天在Python黄金群【莫生气】问了一个Python数据处理的问题,需求如下:

大佬们,请教一个问题,2274587.84如何快速的转换为大写:贰佰贰拾柒万肆仟伍佰捌拾柒元捌角肆分?有没有工具或者网页啥的?不一定要Python实现。

使用百度上查到的代码,似乎不太好用,

def num2chinese(num):
    chinese_num = ["零", "壹", "贰", "参", "肆", "伍", "陆", "柒", "捌", "玖"]
    chinese_unit = ["", "拾", "佰", "仟", "万", "亿"]
    num_str = str(num)
    num_len = len(num_str)
    chinese_str = ''
    zero_flag = False
    for i in range(num_len):
        j = int(num_str[i])
        if i == 8:
            zero_flag = True
        else:
            if zero_flag:
                chinese_str += chinese_num[0]
                zero_flag = False
            chinese_str += chinese_num[j] + chinese_unit[num_len - i - 1]

    if zero_flag:
        chinese_str += chinese_num[0]
    return chinese_str


if __name__ == '__main__':
    print(num2chinese(135496))

代码运行之后出错,和实际预期的结果还是有差距的。

如何把2274587.84如何快速的转换为大写:贰佰贰拾柒万肆仟伍佰捌拾柒元捌角肆分?(下篇)

而且一旦假如小数,比方说有角分这样的,直接报错了。

如何把2274587.84如何快速的转换为大写:贰佰贰拾柒万肆仟伍佰捌拾柒元捌角肆分?(下篇)

二、实现过程

后来在讯飞星火上问到了一个答案,代码如下所示:

def num_to_chinese(num):

    chinese_num = {

        0: "零",

        1: "一",

        2: "二",

        3: "三",

        4: "四",

        5: "五",

        6: "六",

        7: "七",

        8: "八",

        9: "九"

    }

    chinese_unit = ["", "十", "百", "千", "万", "亿"]

    chinese_str = ""

    unit_index = 0

    for i in str(num):

        if i.isdigit():

            chinese_str += chinese_num[int(i)] + chinese_unit[unit_index]

            unit_index += 1

        else:

            chinese_str += i

    return chinese_str.strip("零") or "零"



num = 2274587.84

result = num_to_chinese(num)

print(result)

代码花里胡哨的,但是解决不了问题,一跑就出现数组越界的错误,尝试调教,说他错了,他仍然给你旧代码,甚至还给你一个不沾边的代码,整无语了。

后来问了Zelinna,给的代码看上去像那么回事,代码如下:

def num_to_chinese(num):

    chinese_num = {

        0: "零",

        1: "一",

        2: "二",

        3: "三",

        4: "四",

        5: "五",

        6: "六",

        7: "七",

        8: "八",

        9: "九"

    }

    chinese_unit = ["", "十", "百", "千", "万", "亿"]

    chinese_str = ""

    unit_index = 0

    for i in str(num):

        if i.isdigit():

            chinese_str += chinese_num[int(i)] + chinese_unit[unit_index]

            unit_index += 1

        else:

            chinese_str += i

    return chinese_str.strip("零") or "零"



num = 2274587.84

result = num_to_chinese(num)

print(result)

不过安装这个库之后,竟然报错,说里边对应的方法竟然不存在,这。。。很尴尬,还占用我内存,反手就uninstall掉了。

最后用了Excel设置单元格格式,好家伙,找到数据,然后右键-->设置单元格格式-->特殊-->人民币大写,就完事了,而且多行数据的话,直接一个填充就完事了,比问C老师,Z老师,K老师快得多!

如何把2274587.84如何快速的转换为大写:贰佰贰拾柒万肆仟伍佰捌拾柒元捌角肆分?(下篇)

顺利地解决了粉丝的问题。

后来【甯同学】,还给了一个方法。搜狗输入法,输入v+数字直接就是了。

如何把2274587.84如何快速的转换为大写:贰佰贰拾柒万肆仟伍佰捌拾柒元捌角肆分?(下篇)

三、总结

大家好,我是皮皮。这篇文章主要盘点了一个Python实战的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。

最后感谢粉丝【莫生气】提问,感谢【巭孬嫑勥烎】给出的思路和代码解析,感谢【Ineverleft】、【瑜亮老师】等人参与学习交流。

【提问补充】温馨提示,大家在群里提问的时候。可以注意下面几点:如果涉及到大文件数据,可以数据脱敏后,发点demo数据来(小文件的意思),然后贴点代码(可以复制的那种),记得发报错截图(截全)。代码不多的话,直接发代码文字即可,代码超过50行这样的话,发个.py文件就行。

[图片上传失败...(image-2fdcfe-1689563010854)]

点赞
收藏
评论区
推荐文章
Python进阶者 Python进阶者
2年前
盘点一个Pandas处理的基础题目
大家好,我是皮皮。一、前言前几天在Python星耀交流群【dcpeng】问了一个Pandas基础的问题,提问截图如下:原始代码如下:importpandasaspdfromdataclassesimportdataclass@dataclassclassC:a:int0b:int0@propertydefad
Python进阶者 Python进阶者
1年前
如何把2274587.84如何快速的转换为大写:贰佰贰拾柒万肆仟伍佰捌拾柒元捌角肆分?(上篇)
大家好,我是皮皮。一、前言前几天在Python黄金群【莫生气】问了一个Python数据处理的问题,需求如下:大佬们,请教一个问题,2274587.84如何快速的转换为大写:贰佰贰拾柒万肆仟伍佰捌拾柒元捌角肆分?有没有工具或者网页啥的?不一定要Python实
Python进阶者 Python进阶者
1年前
如何把2274587.84如何快速的转换为大写:贰佰贰拾柒万肆仟伍佰捌拾柒元捌角肆分?(番外篇)
大家好,我是皮皮。一、前言前几天在Python黄金群【莫生气】问了一个Python数据处理的问题,需求如下:大佬们,请教一个问题,2274587.84如何快速的转换为大写:贰佰贰拾柒万肆仟伍佰捌拾柒元捌角肆分?有没有工具或者网页啥的?不一定要Python实
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
Python进阶者 Python进阶者
9个月前
谁有数字转换,金额大写的类?网络上找的好像都有点问题
大家好,我是Python进阶者。一、前言前几天在Python白银交流群【黄志诚】问了一个Python处理财务金额大写的实战问题。问题如下:谁有数字转换,金额大写的类?网络上找的好像都有点问题,到几亿元的那种。二、实现过程这里【瑜亮老师】给了一个指导:这个问
Python进阶者 Python进阶者
6个月前
Python网络爬虫要清理cookies 才能再爬,有啥解决方法嘛?
大家好,我是Python进阶者。一、前言前几天在Python钻石交流群【大写一个Y】问了一个Python基网络爬虫的问题,问题如下:大佬们请教个问题我做了个在某眼查抓地址数据的爬虫,程序中做了随机25秒的循环延时,现在大概爬800多个地址,就会查不出数据,
Python进阶者 Python进阶者
6个月前
python里有哪个好用的地址分析库嘛?
大家好,我是Python进阶者。一、前言前几天在Python铂金交流群【大写一个Y】问了一个Python数据处理的问题,问题如下:大佬们python里有哪个好用的地址分析库嘛?我现在用的是jionlp,会有一些错误,比如广东的“开平市长沙区”,会因为:长沙
Python进阶者 Python进阶者
5个月前
请问如何将带有斜纹水印pdf的转成Excel呢?
大家好,我是Python进阶者。一、前言前几天在Python最强王者交流群【wen】问了一个Python自动化办公的问题,问题如下:请问如何将带有斜纹水印pdf的转成Excel呢?目前我把pdf转成图片,根据水印的颜色进行清除,但是在脱网环境下无法将图片转
Python进阶者 Python进阶者
5个月前
我用plt.contour()怎么把颜色棒区间显示区间设定为0~17呀?
大家好,我是Python进阶者。一、前言前几天在Python白银交流群【王者级混子】问了一个matplotlib作图的问题,问题如下:大佬们,我用plt.contour()怎么把颜色棒区间显示区间设定为017呀?二、实现过程这里【论草莓如何成为冻干莓】给了
Python进阶者 Python进阶者
4个月前
字符串包含了不需要的双引号,导致读取成json文件失败?Python怎么批量修改?
大家好,我是Python进阶者。一、前言前几天在Python最强王者交流群【哎呦喂是豆子~】问了一个Python数据处理的问题。问题如下:大佬们请教下这个问题,数据为下载的html文件,写法已经固定,解析成json文件会报错,这种字符串包含了不需要的双引号