热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python数字转英文_GitHubAilln/en2an:快速转化「英文数字」和「阿拉伯数字」

en2an:EnglishNumeralsToArabicNumerals📦en2an是一个快速转化英文数字和阿拉伯数字的工具包!🎈该

en2an: English Numerals To Arabic Numerals

68747470733a2f2f696d672e736869656c64732e696f2f707970692f762f656e32616e2e737667

68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d677265656e2e737667

68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f41696c6c6e2f656e32616e2e737667

badge.svg

68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4150492d7265666572656e63652d70696e6b2e737667

📦 en2an 是一个快速转化 英文数字 和 阿拉伯数字 的工具包!

68747470733a2f2f61696c6c6e2e6f73732d636e2d68616e677a686f752e616c6979756e63732e636f6d2f6769746875622f656e32616e2f656e32616e2d736974652d76302e302e362e706e67

🎈 该项目正在收集需求中,欢迎在 Issue: 需求收集 中与我们讨论!

1 功能

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

支持 英文数字 => 阿拉伯数字;

支持 大写英文数字 => 阿拉伯数字;

支持 英文数字和阿拉伯数字 => 阿拉伯数字;

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

支持 阿拉伯数字 => 英文数字;

支持 阿拉伯数字 => 大写英文数字;

支持 阿拉伯数字 => 大写美元(美点表达);

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

1.4 其他(开发中)

支持 小数

支持 负数

支持 HTTP API。

2 安装

⚠️ 注意:

本地安装仅支持 Python 的 3.6 以上版本;

其他语言用户可以考虑使用 HTTP API ;

请尽可能使用 en2an 的最新版本。

2.1 使用 pip 安装

pip install en2an -U

2.2 从代码库安装

git clone https://github.com/Ailln/en2an.git

cd en2an && python setup.py install

3 使用

# 在文件首部引入包

import en2an

# 查看版本

print(en2an.__version__)

# 0.0.6

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

最大支持到hundred trillion(百兆),即10**15。

import en2an

# 在 strict 模式(默认)下,只有严格符合数字拼写的才可以进行转化

output = en2an.en2an("one hundred and twenty-three")

# 或者

output = en2an.en2an("one hundred and twenty-three", "strict")

# output:

# 123

# 在 normal 模式下,还可以将 one two three 进行转化

output = en2an.en2an("one two three", "normal")

# output:

# 123

# 在 smart 模式下,还可以将混合拼写的 one hundred 23 进行转化(暂不支持小数)

output = en2an.en2an("one hundred 23", "smart")

# output:

# 123

# 以上三种模式均支持负数

output = en2an.en2an("minus one hundred and twenty-three")

# output:

# -123

# strict 模式支持小数,normal 和 smart 模式暂不支持

output = en2an.en2an("one point two three")

# output:

# 1.23

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

最大支持到10**15,即hundred trillion(百兆)。

import en2an

# 在 low 模式(默认)下,数字转化为小写的英文数字

output = en2an.an2en("1234567890")

# 或者

output = en2an.an2en("1234567890", "low")

# output:

# one billion two hundred and thirty-four million five hundred and sixty-seven thousand eight hundred and ninety

# 在 up 模式下,数字转化为大写的英文数字

output = en2an.an2en("1234567890", "up")

# output:

# ONE BILLION TWO HUNDRED AND THIRTY-FOUR MILLION FIVE HUNDRED AND SIXTY-SEVEN THOUSAND EIGHT HUNDRED AND NINETY

# 在 usd 模式下,数字转化为大写美元(美点表达)

output = en2an.an2en("1234567890", "usd")

# output:

# SAY US DOLLARS ONE BILLION TWO HUNDRED AND THIRTY-FOUR MILLION FIVE HUNDRED AND SIXTY-SEVEN THOUSAND EIGHT HUNDRED AND NINETY ONLY

# 小数、负数暂不支持

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

开发中...

3.4 HTTP API

主要为其他语言用户提供方便,当然 Python 用户也可以使用。

Java

import java.net.URL;

import java.net.HttpURLConnection;

import java.io.BufferedReader;

import java.io.InputStreamReader;

public class HttpGetExample {

public static void main(String[] args) throws Exception {

HttpGetExample http = new HttpGetExample();

String url = "https://api.dovolopor.com/v1/en2an";

String params = "?text=123&function=an2en&method=low";

http.get(url + params);

}

private void get(String url) throws Exception {

URL obj = new URL(url);

HttpURLConnection con = (HttpURLConnection) obj.openConnection();

con.setRequestMethod("GET");

con.setRequestProperty("User-Agent", "Mozilla/5.0");

BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));

String inputLine;

StringBuffer response = new StringBuffer();

while ((inputLine = in.readLine()) != null) {

response.append(inputLine);

}

in.close();

System.out.println(response.toString());

}

}

// { output: "one hundred and twenty-three", msg: "转化成功" }

Javascript

const axios = require("axios")

axios.get("https://api.dovolopor.com/v1/en2an", {

params: {

text: "123",

function: "an2en",

method: "low"

}

}).then(

function (res) {

console.log(res.data);

}

)

// { output: "one hundred and twenty-three", msg: "转化成功" }

Go

package main

import (

"fmt"

"io/ioutil"

"net/http"

"net/url"

)

func main(){

params := url.Values{}

Url, err := url.Parse("https://api.dovolopor.com/v1/en2an")

if err != nil {

return

}

params.Set("text", "123")

params.Set("function", "an2en")

params.Set("method", "low")

Url.RawQuery = params.Encode()

urlPath := Url.String()

resp,err := http.Get(urlPath)

defer resp.Body.Close()

body, _ := ioutil.ReadAll(resp.Body)

fmt.Println(string(body))

}

// { output: "one hundred and twenty-three", msg: "转化成功" }

Python

import requests

response = requests.get("https://api.dovolopor.com/v1/en2an",

params={

"text": "1234567890",

"function": "an2en",

"method": "low"

}

)

print(response.json())

# { output: "one hundred and twenty-three", msg: "转化成功" }

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)。

6 开发相关

6.1 开发进度

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

6.2 代码测试

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

bash scripts/local_test.sh

6.3 性能测试

测试版本:v0.0.6

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

测试方法:

pip install -r requirements_test.txt

python -m en2an.performance

测试结果:

序号

功能

执行次数

执行时间(平均)

性能(次/秒)

1

an2en

10000

0.17

59k

2

en2an

10000

0.50

20k

测试时,我使用的是最大长度的测试数据!因此,大多数情况下该库的性能会更好~

7 许可证

68747470733a2f2f61776172642e646f766f6c6f706f722e636f6d3f6c743d4c6963656e73652672743d4d4954267262633d677265656e

68747470733a2f2f61776172642e646f766f6c6f706f722e636f6d3f6c743d41696c6c6e27732672743d69646561266c62633d6c6967687467726179267262633d726564266c74633d726564

8 交流

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

9 参考



推荐阅读
  • 开源Keras Faster RCNN模型介绍及代码结构解析
    本文介绍了开源Keras Faster RCNN模型的环境需求和代码结构,包括FasterRCNN源码解析、RPN与classifier定义、data_generators.py文件的功能以及损失计算。同时提供了该模型的开源地址和安装所需的库。 ... [详细]
  • 纠正网上的错误:自定义一个类叫java.lang.System/String的方法
    本文纠正了网上关于自定义一个类叫java.lang.System/String的错误答案,并详细解释了为什么这种方法是错误的。作者指出,虽然双亲委托机制确实可以阻止自定义的System类被加载,但通过自定义一个特殊的类加载器,可以绕过双亲委托机制,达到自定义System类的目的。作者呼吁读者对网上的内容持怀疑态度,并带着问题来阅读文章。 ... [详细]
  • 本文为Codeforces 1294A题目的解析,主要讨论了Collecting Coins整除+不整除问题。文章详细介绍了题目的背景和要求,并给出了解题思路和代码实现。同时提供了在线测评地址和相关参考链接。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • 怎么在PHP项目中实现一个HTTP断点续传功能发布时间:2021-01-1916:26:06来源:亿速云阅读:96作者:Le ... [详细]
  • phpcomposer 那个中文镜像是不是凉了 ... [详细]
  • 基于dlib的人脸68特征点提取(眨眼张嘴检测)python版本
    文章目录引言开发环境和库流程设计张嘴和闭眼的检测引言(1)利用Dlib官方训练好的模型“shape_predictor_68_face_landmarks.dat”进行68个点标定 ... [详细]
  • 解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
    本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
author-avatar
酱油丸子-310
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有