Skip to main content

Convert Chinese numerals and Arabic numerals.

Project description

cn2an: Chinese Numerals To Arabic Numerals

Pypi MIT License stars build API

📦 cn2an 是一个快速转化 中文数字阿拉伯数字 的工具包!

🔗点我访问 DEMO

🎈en2an: 「英文数字」和「阿拉伯数字」互转正在收集需求中! 详情

1 功能

1.1 中文数字 => 阿拉伯数字

  • 支持 中文数字 => 阿拉伯数字
  • 支持 大写中文数字 => 阿拉伯数字
  • 支持 中文数字和阿拉伯数字 => 阿拉伯数字

1.2 阿拉伯数字 => 中文数字

  • 支持 阿拉伯数字 => 中文数字
  • 支持 阿拉伯数字 => 大写中文数字
  • 支持 阿拉伯数字 => 大写人民币

1.3 句子转化(试验性功能)

  • 支持 中文数字 => 阿拉伯数字
  • 支持 阿拉伯数字 => 中文数字

1.4 其他

  • 支持小数
  • 支持负数

2 安装

⚠️注意:

  1. 仅支持 Python 的 3.6 以上版本;
  2. 请安装使用 cn2an 的最新版本。

2.1 使用 pip 安装

pip install cn2an

2.2 从代码库安装

git clone https://github.com/Ailln/cn2an.git
cd cn2an && python setup.py install

3 使用

# 在文件首部引入包
import cn2an

# 查看版本
print(cn2an.__version__)
# 0.4.2

3.1 中文数字 => 阿拉伯数字

最大支持到万亿兆,即10**32

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("负一百二十三")
# output:
# -123

3.2 阿拉伯数字 => 中文数字

最大支持到10**32,即万亿兆

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.cn2an("-123")
# output:
# 负一百二十三

3.3 句子转化(试验性功能)

import cn2an

output = cn2an.transform("我捡了一百块钱")
# 或者
output = cn2an.transform("我捡了一百块钱", "cn2an")
# output:
# 我捡了100块钱

output = cn2an.transform("我捡了100块钱", "an2cn")
# output:
# 我捡了一百块钱

详细用法见 API.

4 版本支持

  • 理论上支持 WindowsMacOSUbuntu 下的所有 Python 3.6+ 的版本。
  • 实际上仅在 ubuntu-latestwindows-latestmacOS-latestPython 3.6, 3.7, 3.8 上做过完整测试。
  • 欢迎提交其他版本使用情况到 Issues 中,期待你的反馈。
  • 如果你有 Python 2 的使用需求,可 Fork 代码自行修改。当然也欢迎提 PR,贡献自己代码给其他人。

5 问题反馈

  1. 先搜索 Issues 中有没有人已经问过类似的问题;
  2. 如果没有找到解答,请新开一个 issue:
    1. 首先,在「issue 标题」中填写你遇到的问题的简介;
    2. 然后,在「issue 详情」中填写你遇到的问题的详情;
    3. 最后,不要忘记注明你使用的操作系统(比如 Windows 10)和 Python 版本(比如 Python 3.6.3)。
  3. 还可以参考 issue 模版

6 开发相关

6.1 开发进度

本项目是用看板管理开发进度,请点击 v0.4 查看开发进度和计划事项。

6.2 代码测试

本地测试使用 Anaconda 的虚拟环境,测试方法如下。

# 安装 conda 环境
conda create -n py369 python=3.6.9
conda create -n py374 python=3.7.4

# 执行测试
bash scripts/local_test.sh

线上测试使用 GitHub Actions

6.3 性能测试

  • 测试版本:v0.3.10

  • 测试设备:2.3 GHz 双核Intel Core i5 MacBook Pro

  • 测试代码:performance.py

  • 测试方法:

    pip install -r requirements_test.txt
    
    python -m cn2an.performance
    
  • 测试结果:

    序号 功能 执行次数 执行时间(平均) 性能(次/秒)
    1 an2cn 10000 0.23 43k
    2 cn2an 10000 0.56 18k

在测试时,我使用的测试数据是长度最大的数据!因此,大多数情况下性能要比上述情况更好~

7 许可证

8 交流

欢迎添加微信号:Ailln_,备注「cn2an」,我邀请你进入交流群。

9 致谢

  • Thunder Bouble: 提出很多有效的反馈,包括一些 bug 和新功能;
  • Damon Yu: 增加对全角数字和全角符号的支持。

10 参考

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cn2an-0.4.2.tar.gz (205.9 kB view hashes)

Uploaded Source

Built Distribution

cn2an-0.4.2-py3-none-any.whl (13.8 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page