如何用python实现数字转汉字?

在大多数情况下,汉字都比数字要显得正式一些。

比如说,“二零一九年”就比较有官方文件的味道,而“2019年”则更有个人日记的味道。

另外,汉字还可以用来编绕口令!用数字的话就难得多。还是举个栗子:

14是14,40是40。

就显得很幼齿。

十四是十四,四十是四十。

就有一种唇齿生香的感觉。

山前有44只石狮子,山后有44棵紫色柿子树。

感觉像是枯燥乏味的流水账。

山前有四十四只石狮子,山后有四十四棵紫色柿子树。

感觉像是琅琅上口的动人歌谣。

那么,用python如何实现数字转汉字的功能呢?代码不长,也不难:

han_list = ["零" , "一" , "二" , "三" , "四" , "五" , "六" , "七" , "八" , "九"]
unit_list = ["","","十" , "百" , "千"]

def four_to_han(num_str):
    result = ""
    num_len = len(num_str)
    for i in range(num_len):
        num = int(num_str[i])
        if i!=num_len-1:
            if num!=0:
                result=result+han_list[num]+unit_list[num_len-i]
            else:
                if result[-1]=='零':
                    continue
                else:
                    result=result+'零'
        else:
            if num!=0:
                result += han_list[num]

    return result

如上代码只能实现最多四位数字的转换。

数字位数超过四位怎么办?

还是相似的思路,只不过5-8位的单位是“万”,9-12位的单位是“亿”,13-16位的单位是“兆”。

猜你喜欢

转载自blog.csdn.net/esa72ya/article/details/106050780