- Notifications
You must be signed in to change notification settings - Fork79
📦 快速转化「中文数字」和「阿拉伯数字」~ (最新特性:分数,日期、温度等转化)
License
NotificationsYou must be signed in to change notification settings
Ailln/cn2an
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
📦cn2an
是一个快速转化中文数字
和阿拉伯数字
的工具包!
🎈
v0.5.23 update
: delete setuptools in requirements.txt
- 支持
中文数字
=>阿拉伯数字
; - 支持
大写中文数字
=>阿拉伯数字
; - 支持
中文数字和阿拉伯数字
=>阿拉伯数字
;
- 支持
阿拉伯数字
=>中文数字
; - 支持
阿拉伯数字
=>大写中文数字
; - 支持
阿拉伯数字
=>大写人民币
;
支持
中文数字
=>阿拉伯数字
;- 支持
日期
; - 支持
分数
; - 支持
百分比
; - 支持
摄氏度
;
- 支持
支持
阿拉伯数字
=>中文数字
;- 支持
日期
; - 支持
分数
; - 支持
百分比
; - 支持
摄氏度
;
- 支持
- 支持
小数
; - 支持
负数
; - 支持
HTTP API
。
⚠️ 注意:
- 本地安装仅支持 Python 的 3.6 以上版本;
- 其他语言用户可以考虑使用HTTP API ;
- 尽可能使用
cn2an
的最新版本。
pip install cn2an -U
git clone https://github.com/Ailln/cn2an.gitcd cn2an&& python setup.py install
# 在文件首部引入包importcn2an# 查看当前版本号print(cn2an.__version__)# 0.5.23
最大支持到
10**16
,即千万亿
,最小支持到10**-16
。
importcn2an# 在 strict 模式(默认)下,只有严格符合数字拼写的才可以进行转化output=cn2an.cn2an("一百二十三")# 或者output=cn2an.cn2an("一百二十三","strict")# output:# 123# 在 normal 模式下,可以将 一二三 进行转化output=cn2an.cn2an("一二三","normal")# output:# 123# 在 smart 模式下,可以将混合拼写的 1百23 进行转化output=cn2an.cn2an("1百23","smart")# output:# 123# 以上三种模式均支持负数output=cn2an.cn2an("负一百二十三","strict")# output:# -123# 以上三种模式均支持小数output=cn2an.cn2an("一点二三","strict")# output:# 1.23
最大支持到
10**16
,即千万亿
,最小支持到10**-16
。
importcn2an# 在 low 模式(默认)下,数字转化为小写的中文数字output=cn2an.an2cn("123")# 或者output=cn2an.an2cn("123","low")# output:# 一百二十三# 在 up 模式下,数字转化为大写的中文数字output=cn2an.an2cn("123","up")# output:# 壹佰贰拾叁# 在 rmb 模式下,数字转化为人民币专用的描述output=cn2an.an2cn("123","rmb")# output:# 壹佰贰拾叁元整# 以上三种模式均支持负数output=cn2an.an2cn("-123","low")# output:# 负一百二十三# 以上三种模式均支持小数output=cn2an.an2cn("1.23","low")# output:# 一点二三
⚠️ :试验性功能,可能会造成不符合期望的转化。
importcn2an# 在 cn2an 方法(默认)下,可以将句子中的中文数字转成阿拉伯数字output=cn2an.transform("小王捡了一百块钱")# 或者output=cn2an.transform("小王捡了一百块钱","cn2an")# output:# 小王捡了100块钱# 在 an2cn 方法下,可以将句子中的中文数字转成阿拉伯数字output=cn2an.transform("小王捡了100块钱","an2cn")# output:# 小王捡了一百块钱## 支持日期output=cn2an.transform("小王的生日是二零零一年三月四日","cn2an")# output:# 小王的生日是2001年3月4日output=cn2an.transform("小王的生日是2001年3月4日","an2cn")# output:# 小王的生日是二零零一年三月四日## 支持分数output=cn2an.transform("抛出去的硬币为正面的概率是二分之一","cn2an")# output:# 抛出去的硬币为正面的概率是1/2output=cn2an.transform("抛出去的硬币为正面的概率是1/2","an2cn")# output:# 抛出去的硬币为正面的概率是二分之一## 支持百分比## 支持摄氏度
主要为其他语言(Java、Javascript、Go等)用户提供方便,当然 Python 用户也可以使用,点击查看详细用法。
- 理论上支持
Windows
、MacOS
、Ubuntu
下的所有Python 3.6+
的版本。 - 实际上仅在
ubuntu-latest
、windows-latest
、macOS-latest
的Python 3.6, 3.7, 3.8
上做过完整测试。 - 欢迎提交其他版本使用情况到Issues 中,期待你的反馈。
- 如果你有
Python 2
的使用需求,可 Fork 代码自行修改。当然也欢迎提 PR,贡献自己代码给其他人。
- 先搜索Issues 中有没有人已经问过类似的问题;
- 如果没有找到解答,请新开一个 issue:
- 首先,在「issue 标题」中填写你遇到的问题的简介;
- 然后,在「issue 详情」中填写你遇到的问题的详情;
- 最后,不要忘记注明你使用的操作系统(比如 Windows 10)和 Python 版本(比如 Python 3.6.3)。
- 还可以参考Issue Template 。
本项目是用看板管理开发进度,请点击v0.5 查看开发进度和计划事项。
本地测试使用Anaconda 的虚拟环境,测试方法如下:
# 执行测试bash scripts/local_test.sh
线上测试使用GitHub Actions 。
测试版本:
v0.5.1
测试设备:
2.3 GHz 双核Intel Core i5 MacBook Pro
测试代码:performance.py
测试方法:
pip install -r requirements_test.txtpython -m cn2an.performance
测试结果:
序号 功能 执行次数 执行时间(万次平均) 性能(次/秒) 1 an2cn 10000 0.15 67k 2 cn2an 10000 0.35 29k
测试时,我使用的是最大长度的测试数据!因此,大多数情况下该库的性能会更好~
欢迎添加微信号:Ailln_
,备注「cn2an」,邀请你进入 Python 交流群。
- Thunder Bouble: 提出很多有效的反馈,包括一些 bug 和新功能;
- Damon Yu: 增加对全角数字和全角符号的支持;
- Beants: 修复了口语格式的 bug;
- Ray: 提出修改输出 warn 的方法,以及其他一些建议。