Convert Chinese numerals and Arabic numerals.
Project description
cn2an: Chinese Numerals To Arabic Numerals
📦 cn2an
是一个快速转化 中文数字
和 阿拉伯数字
的工具包!
🎈
v0.5.22 update
: replace print with warning.warn
1 功能
1.1 中文数字
=> 阿拉伯数字
- 支持
中文数字
=>阿拉伯数字
; - 支持
大写中文数字
=>阿拉伯数字
; - 支持
中文数字和阿拉伯数字
=>阿拉伯数字
;
1.2 阿拉伯数字
=> 中文数字
- 支持
阿拉伯数字
=>中文数字
; - 支持
阿拉伯数字
=>大写中文数字
; - 支持
阿拉伯数字
=>大写人民币
;
1.3 句子转化
-
支持
中文数字
=>阿拉伯数字
;- 支持
日期
; - 支持
分数
; - 支持
百分比
; - 支持
摄氏度
;
- 支持
-
支持
阿拉伯数字
=>中文数字
;- 支持
日期
; - 支持
分数
; - 支持
百分比
; - 支持
摄氏度
;
- 支持
1.4 其他
- 支持
小数
; - 支持
负数
; - 支持
HTTP API
。
2 安装
⚠️ 注意:
- 本地安装仅支持 Python 的 3.6 以上版本;
- 其他语言用户可以考虑使用 HTTP API ;
- 尽可能使用
cn2an
的最新版本。
2.1 使用 pip 安装
pip install cn2an -U
2.2 从代码库安装
git clone https://github.com/Ailln/cn2an.git
cd cn2an && python setup.py install
3 使用
# 在文件首部引入包
import cn2an
# 查看当前版本号
print(cn2an.__version__)
# 0.5.22
3.1 中文数字
=> 阿拉伯数字
最大支持到
10**16
,即千万亿
,最小支持到10**-16
。
import cn2an
# 在 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
3.2 阿拉伯数字
=> 中文数字
最大支持到
10**16
,即千万亿
,最小支持到10**-16
。
import cn2an
# 在 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:
# 一点二三
3.3 句子转化
⚠️:试验性功能,可能会造成不符合期望的转化。
import cn2an
# 在 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/2
output = cn2an.transform("抛出去的硬币为正面的概率是1/2", "an2cn")
# output:
# 抛出去的硬币为正面的概率是二分之一
## 支持百分比
## 支持摄氏度
3.4 HTTP API
主要为其他语言(Java、Javascript、Go等)用户提供方便,当然 Python 用户也可以使用,点击查看详细用法。
4 版本支持
- 理论上支持
Windows
、MacOS
、Ubuntu
下的所有Python 3.6+
的版本。 - 实际上仅在
ubuntu-latest
、windows-latest
、macOS-latest
的Python 3.6, 3.7, 3.8
上做过完整测试。 - 欢迎提交其他版本使用情况到 Issues 中,期待你的反馈。
- 如果你有
Python 2
的使用需求,可 Fork 代码自行修改。当然也欢迎提 PR,贡献自己代码给其他人。
5 问题反馈
- 先搜索 Issues 中有没有人已经问过类似的问题;
- 如果没有找到解答,请新开一个 issue:
- 首先,在「issue 标题」中填写你遇到的问题的简介;
- 然后,在「issue 详情」中填写你遇到的问题的详情;
- 最后,不要忘记注明你使用的操作系统(比如 Windows 10)和 Python 版本(比如 Python 3.6.3)。
- 还可以参考 Issue Template 。
6 开发相关
6.1 开发进度
本项目是用看板管理开发进度,请点击 v0.5 查看开发进度和计划事项。
6.2 代码测试
本地测试使用 Anaconda 的虚拟环境,测试方法如下:
# 执行测试
bash scripts/local_test.sh
线上测试使用 GitHub Actions 。
6.3 性能测试
-
测试版本:
v0.5.1
-
测试设备:
2.3 GHz 双核Intel Core i5 MacBook Pro
-
测试代码:performance.py
-
测试方法:
pip install -r requirements_test.txt python -m cn2an.performance
-
测试结果:
序号 功能 执行次数 执行时间(万次平均) 性能(次/秒) 1 an2cn 10000 0.15 67k 2 cn2an 10000 0.35 29k
测试时,我使用的是最大长度的测试数据!因此,大多数情况下该库的性能会更好~
7 许可证
8 交流
欢迎添加微信号:Ailln_
,备注「cn2an」,邀请你进入 Python 交流群。
9 致谢
- Thunder Bouble: 提出很多有效的反馈,包括一些 bug 和新功能;
- Damon Yu: 增加对全角数字和全角符号的支持;
- Beants: 修复了口语格式的 bug;
- Ray: 提出修改输出 warn 的方法,以及其他一些建议。
10 参考
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file cn2an-0.5.22.tar.gz
.
File metadata
- Download URL: cn2an-0.5.22.tar.gz
- Upload date:
- Size: 21.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 27ae5b56441d7329ed2ececffa026bfa8fc353dcf1fb0d9146b303b9cce3ac37 |
|
MD5 | d0c862db2e2afcac978d836daa212c86 |
|
BLAKE2b-256 | a15cf565259e568316e5fde4dba292e2ca9cff0619657e4ec9f254f415543f59 |
File details
Details for the file cn2an-0.5.22-py3-none-any.whl
.
File metadata
- Download URL: cn2an-0.5.22-py3-none-any.whl
- Upload date:
- Size: 225.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cba4c8f305b43da01f50696047cca3116c727424ac62338da6a3426e01454f3e |
|
MD5 | 5fe463a53c0dc07ed16feb9f854d0089 |
|
BLAKE2b-256 | 1c3d3e04a822b8615904269f7126d8b019ae5c3b5c3c78397ec8bab056b02099 |