📦 en2an
是一个快速转化 英文数字
和 阿拉伯数字
的工具包!
🎈 该项目正在收集需求中,欢迎在 Issue: 需求收集 中与我们讨论!
- 支持
英文数字
=>阿拉伯数字
; - 支持
大写英文数字
=>阿拉伯数字
; - 支持
英文数字和阿拉伯数字
=>阿拉伯数字
;
- 支持
阿拉伯数字
=>英文数字
; - 支持
阿拉伯数字
=>大写英文数字
; - 支持
阿拉伯数字
=>大写美元(美点表达)
;
- 支持
小数
- 支持
负数
- 支持
HTTP API
。
⚠️ 注意:
- 本地安装仅支持 Python 的 3.6 以上版本;
- 其他语言用户可以考虑使用 HTTP API ;
- 请尽可能使用 en2an 的最新版本。
pip install en2an -U
git clone https://github.com/Ailln/en2an.git
cd en2an && python setup.py install
# 在文件首部引入包
import en2an
# 查看版本
print(en2an.__version__)
# 0.0.6
最大支持到
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
最大支持到
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
# 小数、负数暂不支持
开发中...
主要为其他语言用户提供方便,当然 Python 用户也可以使用。
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: "转化成功" }
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: "转化成功" }
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: "转化成功" }
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: "转化成功" }
- 理论上支持
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 模版。
本项目是用看板管理开发进度,请点击 v0.1 查看开发进度和计划事项。
本地测试使用 Anaconda 的虚拟环境,测试方法如下:
bash scripts/local_test.sh
线上测试使用 GitHub Actions。
-
测试版本:
v0.0.6
-
测试设备:
2.3 GHz 双核Intel Core i5 MacBook Pro
-
测试代码:performance.py
-
测试方法:
pip install -r requirements_test.txt python -m en2an.performance
-
测试结果:
序号 功能 执行次数 执行时间(平均) 性能(次/秒) 1 an2en 10000 0.17 59k 2 en2an 10000 0.50 20k
测试时,我使用的是最大长度的测试数据!因此,大多数情况下该库的性能会更好~
欢迎添加微信号:Ailln_
,备注「en2an」,我邀请你进入交流群。