Python中文转数字

简介

Python中文转阿拉伯数字

使用 cn2an 库,可进行中文和数字互转,支持繁体、小数、负数、人民币描述、日期、分数、摄氏度




安装

pip install cn2an

cn2an 需要 PyYAML>=5.3.1,若不满足可尝试另一个库——pycnnum




中文数字 → 阿拉伯数字

取值范围 1 0 − 16 ⩽ n ≤ 1 0 16 10^{-16}\leqslant n\leq 10^{16} 1016n1016

import cn2an

print(cn2an.cn2an("一百二十三"))  # 默认为strict模式,需要严格符合数字拼写才可以转化
# 123

print(cn2an.cn2an("一二三", "normal"))  # normal模式,可以转化一二三
# 123

print(cn2an.cn2an("1百23", "smart"))  # smart模式,可以转化混合拼写的1百23
# 123

print(cn2an.cn2an("负一百二十三", "strict"))  # 以上三种模式均支持负数
# -123

print(cn2an.cn2an("一点二三", "strict"))  # 以上三种模式均支持小数
# 1.23




阿拉伯数字 → 中文数字

import cn2an

print(cn2an.an2cn("123"))  # 默认为low模式,转化为小写中文数字
# 一百二十三

print(cn2an.an2cn("123", "up"))  # up模式,转化为大写中文数字
# 壹佰贰拾叁

print(cn2an.an2cn("123", "rmb"))  # rmb模式,转化为人民币描述
# 壹佰贰拾叁元整

print(cn2an.an2cn("-123", "low"))  # 以上三种模式均支持负数
# 负一百二十三

print(cn2an.an2cn("1.23", "low"))  # 以上三种模式均支持小数
# 一点二三




句子转化(实验性功能)

import cn2an

print(cn2an.transform("小王捡了一百块钱"))  # 默认为cn2an模式,将句子中的中文转数字
# 小王捡了100块钱

print(cn2an.transform("小王捡了100块钱", "an2cn"))  # 默认为an2cn模式,将句子中的数字转中文
# 小王捡了一百块钱

print(cn2an.transform("小王的生日是二零零一年三月四日", "cn2an"))  # 支持日期
# 小王的生日是2001年3月4日

print(cn2an.transform("小王的生日是2001年3月4日", "an2cn"))
# 小王的生日是二零零一年三月四日

print(cn2an.transform("抛出去的硬币为正面的概率是二分之一", "cn2an"))  # 支持分数
# 抛出去的硬币为正面的概率是1/2

print(cn2an.transform("抛出去的硬币为正面的概率是1/2", "an2cn"))
# 抛出去的硬币为正面的概率是二分之一

print(cn2an.transform("抛出去的硬币为正面的概率是百分之五十", "cn2an"))  # 支持百分比
# 抛出去的硬币为正面的概率是50%

print(cn2an.transform("抛出去的硬币为正面的概率是50%", "an2cn"))
# 抛出去的硬币为正面的概率是百分之五十

print(cn2an.transform("今天二十七摄氏度", "cn2an"))  # 支持摄氏度
# 今天27℃

print(cn2an.transform("今天27℃", "an2cn"))
# 今天二十七摄氏度




推荐阅读

  1. 英文转数字 en2an GitHub




pycnnum

安装

pip install pycnnum




初试

from pycnnum import cn2num, num2cn

print(cn2num('十'))
print(cn2num('一亿六点三'))
print(num2cn(33212222222, numbering_type='high', alt_two=True, big=True, traditional=True))
for i in range(25):
    print(num2cn(i), end=' ')
print()
# 10
# 160000000.3
# 貳佰參拾貳億貳仟貳佰貳拾貳萬貳仟貳佰貳拾貳
#  一 二 三 四 五 六 七 八 九 一十 一十一 一十二 一十三 一十四 一十五 一十六 一十七 一十八 一十九 二十 二十一 二十二 二十三 二十四




参考文献

  1. cn2an GitHub
  2. pycnnum GitHub
  3. pycnnum PyPI
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

XerCis

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值