日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Python使用cn2an實現中文數字與阿拉伯數字的相互轉換

瀏覽:223日期:2022-06-26 16:11:39

工作中經常遇到阿拉伯數字轉換稱為中文數字或者大寫金額,在網上搜了下,cn2an口碑較好,遂進行了一番學習。

安裝

pip install cn2an

依賴庫為setuptools、PyYAML

查看版本

In [1]: import cn2anIn [2]: cn2an.__version__Out[2]: ’0.5.8’查看模塊定義的標識符

In [3]: dir(cn2an)Out[3]:[’An2Cn’, ’Cn2An’, ’Transform’, ’__all__’, ’__builtins__’, ’__cached__’, ’__doc__’, ’__file__’, ’__loader__’, ’__name__’, ’__package__’, ’__path__’, ’__spec__’, ’__version__’, ’an2cn’, ’cn2an’, ’transform’, ’utils’]模塊結構

cn2an模塊結構如下:

an2cn.pyan2cn_test.pycn2an.pycn2an_test.pyconfig.yamlperformance.pytransform.pytransform_test.pyutils.py__init__.py

查看模塊下的__init__.py文件可知,模塊主要對外暴露cn2an、an2cn和transform三個方法。

from .cn2an import Cn2Anfrom .an2cn import An2Cnfrom .transform import Transform__version__ = '0.5.8'cn2an = Cn2An().cn2anan2cn = An2Cn().an2cntransform = Transform().transform__all__ = [ '__version__', 'cn2an', 'an2cn', 'transform']使用說明1. 中文數字轉阿拉伯數字

In [4]: help(cn2an.cn2an)Help on method cn2an in module cn2an.cn2an:cn2an(inputs: str = None, mode: str = ’strict’) -> int method of cn2an.cn2an.Cn2An instance

查看幫助可知:cn2an方法有兩個參數:inputs和mode,inputs類型為字符串,默認值為空值,mode類型為字符串,默認值為strict,查看源碼可知,mode僅支持strict, normal, smart等三個值。返回值為int類型。最大支持到10**16,即 千萬億,最小支持到 10**-16。

1.1 嚴格模式(strict)

默認為嚴格模式,嚴格模式下只有嚴格符合數字拼寫的才可以進行轉化。

In [1]: import cn2anIn [2]: output = cn2an.cn2an('一百二十三')In [3]: outputOut[3]: 123In [4]: output = cn2an.cn2an('一二三')---------------------------------------------------------------------------ValueErrorTraceback (most recent call last)<ipython-input-4-4c55ae4aa4a9> in <module>----> 1 output = cn2an.cn2an('一二三')c:usersadministratorappdatalocalprogramspythonpython37libsite-packagescn2ancn2an.py in cn2an(self, inputs, mode) 30 31 # 檢查輸入數據是否有效---> 32 sign, integer_data, decimal_data, is_all_num = self.__check_input_data_is_valid(inputs, mode) 33 34 # smart 下的特殊情況c:usersadministratorappdatalocalprogramspythonpython37libsite-packagescn2ancn2an.py in __check_input_data_is_valid(self, check_data, mode) 155 else: 156 if mode == 'strict':--> 157 raise ValueError(f'不符合格式的數據:{integer_data}') 158 elif mode == 'normal': 159 # 純數模式:一二三ValueError: 不符合格式的數據:一二三

1.2 正常模式(normal)

在正常模式下,可以對 一二三 進行轉化

In [5]: output = cn2an.cn2an('一二三',’normal’)In [6]: outputOut[6]: 123

1.3 靈活模式(smart)

在 靈活模式下,可以對混合拼寫的 1百23 進行轉換,也可以對口語化數字進行轉換

In [7]: output = cn2an.cn2an('1百23', 'smart')In [8]: outputOut[8]: 123In [9]: output = cn2an.cn2an('一萬二', 'smart')In [10]: outputOut[10]: 120002. 阿拉伯數字轉中文數字

In [1]: import cn2anIn [2]: help(cn2an.an2cn)Help on method an2cn in module cn2an.an2cn:an2cn(inputs: Union[str, int, float] = None, mode: str = ’low’) -> str method of cn2an.an2cn.An2Cn instance 阿拉伯數字轉中文數字 :param inputs: 阿拉伯數字 :param mode: 小寫數字,大寫數字,人民幣大寫,直接轉化 :return: 中文數字

查看幫助可知:

an2cn方法有兩個參數:inputs和mode,inputs類型可以是字符串、整數或者浮點數,默認值為空值,mode類型為字符串,默認值為low,查看源碼可知,mode支持low, up, rmb, direct等四個值。返回值為str類型。

2.1 小寫中文模式(low)

在 low 模式(默認)下,數字轉化為小寫的中文數字。

In [3]: output = cn2an.an2cn('123')In [4]: outputOut[4]: ’一百二十三’In [5]: output = cn2an.an2cn('123', 'low')In [6]: outputOut[6]: ’一百二十三’

2.2 大寫中文模式(up)

在 up 模式下,數字轉化為大寫的中文數字。

In [7]: output = cn2an.an2cn('123', 'up')In [8]: outputOut[8]: ’壹佰貳拾叁’

2.3 人民幣模式(rmb)

在 rmb 模式下,數字轉化為人民幣專用的描述。

In [9]: output = cn2an.an2cn('123', 'rmb')In [10]: outputOut[10]: ’壹佰貳拾叁元整’

2.4 直接模式(direct)

在 direct 模式下,阿拉伯數字直接轉換為對應的中文小寫數字,小數點轉換為漢字點。

In [11]: output = cn2an.an2cn('-1.23', 'direct')In [12]: outputOut[12]: ’負一點二三’3. 句子中的數字轉換

文檔中說明該功能為實驗性質,功能尚不穩定。

In [1]: import cn2anIn [2]: help(cn2an.transform)Help on method transform in module cn2an.transform:transform(inputs: str, method: str = ’cn2an’) -> str method of cn2an.transform.Transform instance

transform方法具有兩個參數:inputs和method,inputs的類型為字符串,method的類型為字符串,默認值為cn2an,查看源碼可知method支持cn2an和an2cn這兩個值。返回值為字符串。

3.1 中文數字轉阿拉伯數字

在 cn2an 方法(默認)下,可以將句子中的中文數字轉換為阿拉伯數字查看源碼可知默認情況下,中文數字轉換阿拉伯數字采用的smart模式。

In [3]: output = cn2an.transform('小王撿了一百塊錢')In [4]: outputOut[4]: ’小王撿了100塊錢’In [5]: output = cn2an.transform('整齊的步伐,一二一')In [6]: outputOut[6]: ’整齊的步伐,121’

transform方法會根據正則表達式,檢測日期、攝氏度、分數、百分比等特殊情況進行轉換。

In [7]: output = cn2an.transform('小王的生日是二零零一年三月四日', 'cn2an')In [8]: outputOut[8]: ’小王的生日是2001年3月4日’In [9]: output = cn2an.transform('拋出去的硬幣為正面的概率是二分之一', 'cn2an')In [10]: outputOut[10]: ’拋出去的硬幣為正面的概率是1/2’In [11]: output = cn2an.transform('任務已經完成百分之五十', 'cn2an')In [12]: outputOut[12]: ’任務已經完成50%’In [13]: output = cn2an.transform('明天最低溫度一度', 'cn2an')In [14]: outputOut[14]: ’明天最低溫度1度’In [15]: output = cn2an.transform('明天最低溫度一攝氏度', 'cn2an')In [16]: outputOut[16]: ’明天最低溫度1℃’

3.2 阿拉伯數字轉中文數字

在an2cn 方法下,可以將句子中的阿拉伯數字轉換為中文數字。an2cn 模式下,依然會檢測日期、攝氏度、分數、百分比等特殊情況進行轉換

In [2]: output = cn2an.transform('小王撿了100塊錢', 'an2cn')In [3]: outputOut[3]: ’小王撿了一百塊錢’In [4]: output = cn2an.transform('金額為12000元 ', 'an2cn')In [5]: outputOut[5]: ’金額為一萬二千元 ’In [6]: output = cn2an.transform('小王的生日是2001年3月4日', 'an2cn')In [7]: outputOut[7]: ’小王的生日是二零零一年三月四日’In [8]: output = cn2an.transform('拋出去的硬幣為正面的概率是1/2', 'an2cn')In [9]: outputOut[9]: ’拋出去的硬幣為正面的概率是二分之一’In [10]: output = cn2an.transform('任務完成了50%', 'an2cn')In [11]: outputOut[11]: ’任務完成了百分之五十’In [12]: output = cn2an.transform('今天最低氣溫1攝氏度', 'an2cn')In [13]: outputOut[13]: ’今天最低氣溫一攝氏度’

3.3 問題(大寫數字)

根據源碼可知transform方法優先考慮日期、分數、百分比、攝氏度等情況判斷,不符合這幾種情況的都判斷為普通數字,因此,大寫數字在transform方法中表現并不好!

In [14]: output = cn2an.transform('金額為壹萬貳仟元', 'cn2an')WARN: 不符合格式的數據:萬WARN: 不符合格式的數據:仟In [15]: outputOut[15]: ’金額為壹萬貳仟元 ’

測試

cn2an提供了web demo進行體驗。https://www.dovolopor.com/cn2an

API

cn2an提供了API,支持Java、Javascript、Go、Julia、Python等。https://github.com/Ailln/cn2an/wiki/API#http-api

到此這篇關于Python使用cn2an實現中文數字與阿拉伯數字的相互轉換的文章就介紹到這了,更多相關Python 中文數字與阿拉伯數字轉換內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美.日韩.国产.一区.二区| 欧美日一区二区三区在线观看国产免 | 国产精品日韩| 国产精品亚洲成在人线| 欧美日韩在线二区| 日韩中文在线电影| 日韩欧美一区免费| 在线日韩中文| 99pao成人国产永久免费视频 | 婷婷激情一区| 91精品国产调教在线观看| 视频小说一区二区| 狠狠久久婷婷| 蜜桃免费网站一区二区三区| 亚洲精品女人| 国产日韩一区二区三免费高清| 日本伊人午夜精品| 亚洲无线一线二线三线区别av| 日韩av一区二| 精品视频网站| 国产一区二区三区黄网站| 女人av一区| 久久国产精品久久w女人spa| 欧美私人啪啪vps| 国产精品原创| 在线精品一区二区| 欧美日韩视频免费观看| 青青国产91久久久久久| 久久国产中文字幕| 国产精品伦一区二区| 国产亚洲一区在线| 麻豆mv在线观看| 日本aⅴ免费视频一区二区三区| 国产一区二区三区黄网站 | 亚洲人成高清| 成人免费电影网址| 国产精品对白| 日韩激情综合| 免费看的黄色欧美网站| 高清av不卡| 国产美女久久| 性色av一区二区怡红| 日韩精品2区| 国产精品黄色| 日韩av一区二区三区四区| 日韩中文首页| 国产日韩亚洲| 日本欧洲一区二区| 国产精品av久久久久久麻豆网| 国产视频网站一区二区三区| 国产视频一区三区| 鲁鲁在线中文| 国产成人精品一区二区三区在线| 久热精品在线| 婷婷色综合网| 国产va免费精品观看精品视频| 日韩视频一二区| 日韩中文av| 欧美日韩视频| 99久久九九| 免费视频一区二区三区在线观看 | 欧美aa在线观看| 久久影院一区二区三区| 中文字幕免费精品| 国产精品嫩草99av在线| 久久黄色影院| 日韩欧美看国产| 久久影视三级福利片| 91免费精品国偷自产在线在线| 亚洲资源在线| 日韩一区二区免费看| 精品中文在线| 久久激情五月婷婷| 日韩欧美激情| 日本亚洲视频在线| 亚洲免费一区三区| 中文字幕一区二区三区四区久久| 国产亚洲午夜| 国产在线成人| 天堂√8在线中文| 久久精品网址| 免费一级欧美片在线观看网站| 日韩av网站免费在线| 尤物在线精品| 狠狠操综合网| 亚洲在线网站| 婷婷综合六月| 日韩大片免费观看| 久久精品123| 亚洲韩日在线| 久久aⅴ国产紧身牛仔裤| 亚洲一区二区三区四区五区午夜| 国产欧美一区二区三区精品酒店| 日韩精品视频中文字幕| 中文字幕日本一区| 亚洲a级精品| 清纯唯美亚洲综合一区| 国产精品99精品一区二区三区∴| 国产精品17p| 成人在线视频区| 麻豆精品国产91久久久久久| 国产精品久久久久久久久久白浆 | 狠狠干成人综合网| 伊人成人在线视频| 亚洲综合电影一区二区三区| 美国三级日本三级久久99 | 亚洲精品国产嫩草在线观看| 国产理论在线| 久久久天天操| 亚洲在线国产日韩欧美| 亚洲欧美日本国产| 国产精品久久久久久久久久妞妞 | 国产91精品对白在线播放| 精品欧美久久| 免费成人在线视频观看| 国产中文一区| 久久国产高清| 久久国产精品免费精品3p | 在线精品观看| 国产日韩亚洲欧美精品| 国产第一亚洲| 亚洲精品一区二区妖精| 亚洲aa在线| 欧美激情福利| 欧美精品日日操| 午夜av一区| 日本一区二区三区中文字幕| 久久精品国产网站| 伊人精品视频| 国产区精品区| 久久青草久久| 国产综合亚洲精品一区二| 蜜桃视频在线观看一区| 国产精品久久久久久久免费软件| 美女精品视频在线| 国产一区日韩欧美| 欧美日韩亚洲三区| 久久精品亚洲人成影院| 蜜臀av一区二区在线免费观看| 国产精品啊v在线| 日韩一级精品| 日韩高清欧美激情| 国产精品一区亚洲| 99久久亚洲精品蜜臀| 欧美二三四区| 好看的亚洲午夜视频在线| 91精品国产福利在线观看麻豆| 日韩在线成人| 日韩欧美一区二区三区在线观看| 免费在线看一区| 欧美极品中文字幕| 爽好多水快深点欧美视频| 久久精品欧洲| 亚洲作爱视频| 亚洲另类黄色| 日本免费久久| 999久久久免费精品国产| 欧美另类中文字幕 | 国产精品宾馆| 激情综合在线| 中文字幕免费一区二区| 久久久国产精品一区二区中文| 视频一区二区三区入口| 久久av一区| 久久青草久久| 精品国产精品国产偷麻豆| 亚洲免费网址| 蜜桃精品在线| 精品一区二区三区免费看| 中文视频一区| 亚洲不卡av不卡一区二区| 国产日产一区| 欧美日韩国产一区精品一区| 免费人成精品欧美精品| 国产精品国产三级在线观看| 亚洲中午字幕| 高清av不卡| 国产精品毛片aⅴ一区二区三区| 亚洲少妇一区| 精品亚洲美女网站| 精品一区视频| 久久国产免费看| 亚洲综合图色| 亚洲一区二区免费看| 亚洲精品在线影院| 成人在线免费观看网站| 欧美一区在线观看视频| 蜜桃久久av| 97精品97| 韩国女主播一区二区三区| 蜜桃一区二区三区在线观看| 欧美日韩国产精品一区二区亚洲| 男女激情视频一区| 99精品小视频| 国产精品久久久久久久免费观看| 热久久久久久| 亚洲精品无播放器在线播放| 捆绑调教美女网站视频一区| 国产麻豆精品| 国产亚洲一区二区三区啪|