国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

【python3】將小于億的正整數轉為漢字字符

Jochen / 2075人閱讀

摘要:項目需要,將一些整數轉為漢字字符串,搜索了一下大家基本都是自己寫一下函數轉換,參考了帖子在其中速度最快的第三種程序的基礎上,自己做了一些改進,讓代碼更精簡并且更快一些?;舅枷脒€是先將整數字符串化后轉為列表,然后進行漢字字符的替換。

項目需要,將一些整數轉為漢字字符串,搜索了一下大家基本都是自己寫一下函數轉換,參考了帖子:https://blog.csdn.net/PlusCha...;在其中速度最快的第三種程序的基礎上,自己做了一些改進,讓代碼更精簡并且更快一些。

基本思想還是先將整數字符串化后轉為列表,然后進行漢字字符的替換。再根據漢語語法結構加上單位,以及把多余的零和一(例如“一十二”中的“一”)去掉。代碼如下:

# 億位以下的自然數
def num2Chinese(d):
    if 100000000 > d > 0:
        num = ["零", "一", "二", "三", "四", "五", "六", "七", "八", "九"]
        kin = ["十", "百", "千", "萬"]
        num_str = list(str(d))
        num_str.reverse()
        Chinese_str = ""
        for index, i in enumerate(num_str):
            if index!=0:
                if i != "0":
                    Chinese_str = num[int(i)] + kin[(index%4)-1] + Chinese_str
                elif Chinese_str:
                    if index==4 :
                        if Chinese_str[0]!="零":
                            Chinese_str = kin[3] + "零" + Chinese_str
                        else:
                            Chinese_str = kin[3] + Chinese_str
                    if not(Chinese_str[0] in ["零", "萬"] and i=="0"):
                        Chinese_str = num[int(i)] + Chinese_str

            else:
                if i != "0":
                    Chinese_str = num[int(i)] + Chinese_str
        if Chinese_str[:2] == "一十":
            Chinese_str = Chinese_str[1:]
        return Chinese_str

github地址:https://github.com/Pengyiqing...

轉換的過程思路如下:將數字列表化后倒置,即先從個位開始分析,個位上只需要考慮該位是否為零,為零則漢字字符無需聲明。從十位開始,既要考慮加相應單位(好在億以下的算是兩次【十、百、千】的循環,可以合并判斷,如果該位是【零】,根據已經生成的字符串的第一個是否是【零】要判斷是否要加上。循環之間用【萬】相連,【萬】的情況就更復雜一些,因為【萬】字前面不加零,所以再加多帶帶判斷即可。

在本人電腦上進行測試,參考例子里最快的那個代碼,轉化1至9999999的運行時間為73秒。而上面那個優化后的代碼,運行時間為48秒。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/42761.html

相關文章

  • 常用正則匹配

    摘要:由數字個英文字母或者下劃線組成的字符串非負整數正整數正整數非正整數負整數負整數整數非負浮點數正浮點數正浮點數非正浮點數負浮點數負浮點數浮點數由個英文字母組成的字符串 1.由數字、26個英文字母或者下劃線組成的字符串: ^[0-9a-zA-Z_]{1,}$ 2.非負整數(正整數 + 0 ): ^d+$ 3.正整數: ^[0-9]*[1-9][0-9]*$ /^[1-9]d*$/ 4.非正...

    wdzgege 評論0 收藏0
  • Python入門-基本語法1

    摘要:根據有效范圍作用域分為全局變量和局部變量。類型以開頭標識類型以開頭標識類型以進制的字節碼表示,實際上是一個字節串,回應了它的另一個名字。 < 返回索引頁 基本語法 Hello World 代碼注釋 關鍵字 數據類型 變量、常量 變量 變量賦值 變量命名 變量的作用域 常量 字符串與編碼 字符轉義 字符編碼 字符串操作 運算符與表達式 運算符 表達式 ...

    ingood 評論0 收藏0
  • 基于PHP/CURL/codeIgniter的Spider Webbot爬蟲[7]常用正則表達式

    摘要:驗證是否含有等字符只能輸入漢字驗證地址驗證驗證電話號碼正確格式為,,,,,。驗證身份證號位或位數字驗證一年的個月正確格式為和驗證一個月的天正確格式為和。 一、校驗數字的表達式 1 數字:^[0-9]*$ 2 n位的數字:^d{n}$ 3 至少n位的數字:^d{n,}$ 4 m-n位的數字:^d{m,n}$ 5 零和非零開頭的數字:^(0|1-9*)$ 6 非零開頭的最多帶兩位小數的數字...

    wow_worktile 評論0 收藏0
  • 常用正則表達式整理(大全)

    摘要:驗證是否含有等字符驗證漢字驗證地址驗證驗證電話號碼正確格式為,,,,,。驗證身份證號位或位數字驗證一年的個月正確格式為和驗證一個月的天正確格式為和。 http://blog.csdn.net/hebbely/...;http://www.cnblogs.com/hustsk... 驗證數字:^[0-9]*$ 驗證n位的數字:^d{n}$ 驗證至少n位數字:^d{n,}$ 驗證m-...

    Allen 評論0 收藏0

發表評論

0條評論

Jochen

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<