摘要:情景分析零在中文數(shù)字串中起補(bǔ)位作用,處理的時(shí)候可以忽略掉一十通常直接縮減為十,意味著十前獲取不到數(shù)字時(shí)為一十單位千百十前的數(shù)為單個(gè)數(shù)字單位萬(wàn)前的數(shù)可以由復(fù)合而成單位億前的數(shù)可以由及億本身復(fù)合而成代碼實(shí)現(xiàn)一二三四五六七八九千百十十前
情景分析
(1) 零在中文數(shù)字串中起補(bǔ)位作用,處理的時(shí)候可以忽略掉
(2) 一十通常直接縮減為十,意味著十前獲取不到數(shù)字時(shí)為一十
(3) 單位千、百、十前的數(shù)為單個(gè)數(shù)字
(4) 單位萬(wàn)前的數(shù)可以由(3)復(fù)合而成
(5) 單位億前的數(shù)可以由(3)、(4)及億本身復(fù)合而成
digit = {"一": 1, "二": 2, "三": 3, "四": 4, "五": 5, "六": 6, "七": 7, "八": 8, "九": 9}
def _trans(s): num = 0 if s: idx_q, idx_b, idx_s = s.find("千"), s.find("百"), s.find("十") if idx_q != -1: num += digit[s[idx_q - 1:idx_q]] * 1000 if idx_b != -1: num += digit[s[idx_b - 1:idx_b]] * 100 if idx_s != -1: # 十前忽略一的處理 num += digit.get(s[idx_s - 1:idx_s], 1) * 10 if s[-1] in digit: num += digit[s[-1]] return num
def trans(chn): chn = chn.replace("零", "") idx_y, idx_w = chn.rfind("億"), chn.rfind("萬(wàn)") if idx_w < idx_y: idx_w = -1 num_y, num_w = 100000000, 10000 if idx_y != -1 and idx_w != -1: return trans(chn[:idx_y]) * num_y + _trans(chn[idx_y + 1:idx_w]) * num_w + _trans(chn[idx_w + 1:]) elif idx_y != -1: return trans(chn[:idx_y]) * num_y + _trans(chn[idx_y + 1:]) elif idx_w != -1: return _trans(chn[:idx_w]) * num_w + _trans(chn[idx_w + 1:]) return _trans(chn)測(cè)試?yán)?/b>
print(trans("十") == 10) print(trans("一百零一") == 101) print(trans("九百二十一") == 921) print(trans("五十六萬(wàn)零一十") == 560010) print(trans("一萬(wàn)億零二千一百零一") == 1000000002101) print(trans("一萬(wàn)億二千一百萬(wàn)零一百零一") == 1000021000101) print(trans("一萬(wàn)零二百三十億四千零七千八百九十") == 1023000007890)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/41323.html
摘要:常見的字符編碼有編碼,編碼,編碼等。碼只規(guī)定了個(gè)字符的編碼,這在美國(guó)是夠用的。小結(jié)是一種針對(duì)的可變長(zhǎng)度字符編碼,它是的實(shí)現(xiàn)方式之一。 字符編碼是計(jì)算機(jī)編程中不可回避的問(wèn)題,不管你用 Python2 還是 Python3,亦或是 C++, Java 等,我都覺(jué)得非常有必要厘清計(jì)算機(jī)中的字符編碼概念。本文主要分以下幾個(gè)部分介紹: 基本概念 常見字符編碼簡(jiǎn)介 Python 的默認(rèn)編碼 Py...
摘要:操練一下字符串吧。它是在告訴計(jì)算機(jī),它里面包裹著的是一個(gè)字符串。連接字符串方法在中按照下面方法操作老齊教老齊教這是一種最簡(jiǎn)單連接兩個(gè)字符串的方法。請(qǐng)看官字符編碼就知道了。 如果對(duì)自然語(yǔ)言分類,有很多中分法,比如英語(yǔ)、法語(yǔ)、漢語(yǔ)等,這種分法是最常見的。在語(yǔ)言學(xué)里面,也有對(duì)語(yǔ)言的分類方法,比如什么什么語(yǔ)系之類的。我這里提出一種分法,這種分法尚未得到廣大人民群眾和研究者的廣泛認(rèn)同,但是,我相...
摘要:前段時(shí)間在社區(qū)看到一個(gè)很有意思的題目數(shù)字轉(zhuǎn)中文語(yǔ)言描述一開始我是這樣寫的將一個(gè)字符串轉(zhuǎn)換為數(shù)組零一二三四五六七八九一二三七一二四一二九一二四然后題主回復(fù)我說(shuō)根據(jù)你這個(gè)我只能做出來(lái)十以內(nèi)的開始我的理解太過(guò)簡(jiǎn)單,所以又寫了一下思路是這樣的第一次 前段時(shí)間在 segmentfault 社區(qū)看到一個(gè)很有意思的題目 數(shù)字轉(zhuǎn)中文(PHP語(yǔ)言描述) 一開始我是這樣寫的
閱讀 3062·2023-04-26 00:40
閱讀 2401·2021-09-27 13:47
閱讀 4254·2021-09-07 10:22
閱讀 2971·2021-09-06 15:02
閱讀 3316·2021-09-04 16:45
閱讀 2503·2021-08-11 10:23
閱讀 3607·2021-07-26 23:38
閱讀 2907·2019-08-30 15:54