1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/X-CCS-cn2an

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

cn2an: Китайские Номера В Арабские Номера

PyPI MIT License stars build API

📦 cn2an — это инструментарий для быстрого преобразования китайских чисел в арабские числа!

🔗Перейти к DEMO

🎈 v0.5.5 update: Добавлена поддержка древнекитайского слова 廿.

🎈 en2an: Требования для перевода английских чисел в арабские числа и обратно! Подробнее

🎈 Cn2An.jl: Версия для языка Julia уже доступна, функционал продолжает развиваться. Подробнее

1 Функции

1.1 Китайские числа => Арабские числа

  • Поддерживает преобразование китайских чисел в арабские числа;
  • Поддерживает преобразование китайских чисел в верхнем регистре в арабские числа;
  • Поддерживает преобразование китайских чисел и арабских чисел в арабские числа;

1.2 Арабские числа => Китайские числа- Поддерживает преобразование арабских чисел в китайские числа;

  • Поддерживает преобразование арабских чисел в китайские числа в верхнем регистре;

  • Поддерживает преобразование арабских чисел в китайские числа в формате юаней;### 1.3 Преобразование предложений

  • Поддерживает преобразование китайских чисел в арабские числа;

    • Поддерживает преобразование дат;
    • Поддерживает преобразование дробей;
    • Поддерживает преобразование процентов;
    • Поддерживает преобразование градусов Цельсия;
  • Поддерживает преобразование арабских чисел в китайские числа;

    • Поддерживает преобразование дат;
    • Поддерживает преобразование дробей;
    • Поддерживает преобразование процентов;
    • Поддерживает преобразование градусов Цельсия;

1.4 Другое

  • Поддерживает десятичные числа;
  • Поддерживает отрицательные числа;
  • Поддерживает HTTP API.

2 Установка

⚠️ Внимание:

  1. Локальная установка поддерживает только версии Python 3.6 и выше;
  2. Пользователям других языков программирования рекомендуется использовать HTTP API;
  3. Всегда используйте последнюю версию cn2an.

2.1 Установка с помощью pip

pip install cn2an -U

2.2 Установка из репозитория

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

2.3 Часто задаваемые вопросы

2.3.1 О PyYAML

Вопрос: При установке PyYAML возникает ошибка, ERROR: Cannot uninstall 'PyYAML'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.

Решение: Сначала обновите PyYAML до последней версии, а затем установите cn2an.```bash pip install PyYAML -U --ignore-installed


## 3 Использование

```python
# Импортируем пакет в начале файла
import cn2an

# Просмотр текущей версии
print(cn2an.__version__)
# 0.5.5

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 сто двадцать три`
output = cn2an.cn2an("1 сто двадцать три", "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 Преобразование предложений

```python
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:
# 抛出去的硬币为正面的概率是二分之一

## Поддержка процентов
## Поддержка градусов Цельсия

Для получения более подробной информации ознакомьтесь с API.

3.4 HTTP API

Основная цель — предоставить удобство для пользователей на других языках программирования, хотя Python-разработчики также могут использовать этот API.

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/cn2an";
        String params = "?text=123&function=an2cn&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: "одинсотдвадцатьтри", msg: "преобразование успешно" }

Javascript

const axios = require("axios")

axios.get("https://api.dovolopor.com/v1/cn2an", {
  params: {
    text: "123",
    function: "an2cn",
    method: "low"
  }
}).then(
  function (res) {
    console.log(res.data);
  }
)
// { output: "одинсотдвадцатьтри", 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/cn2an")
    if err != nil {
        return
    }
    params.Set("text", "123")
    params.Set("function", "an2cn")
    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: "одинсотдвадцатьтри", msg: "преобразование успешно" }

Julia

using Pkg
Pkg.add("HTTP")

url = "https://api.dovolopor.com/v1/cn2an"
params = HTTP.URIs.escapeuri(["text"=>"123","function"=>"an2cn","method"=>"low"])

r = HTTP.get(url * "?" * params, ["Content-Type"=>"application/json"])
print(String(r.body))
# { output: "одинсотдвадцатьтри", msg: "преобразование успешно" }
```#### Python

```python
import requests

response = requests.get("https://api.dovolopor.com/v1/cn2an",
  params={
    "text": "1234567890",
    "function": "an2cn",
    "method": "low"
  }
)
print(response.json())
# { output: "одинсотдвадцатьтри", msg: "преобразование успешно" }

4 Поддержка версий

  • Теоретически поддерживается все версии Python 3.6+ на Windows, MacOS, Ubuntu.
  • На практике полные тесты проведены только на ubuntu-latest, windows-latest, macOS-latest для Python 3.6, 3.7, 3.8.
  • Приглашаем вас поделиться информацией о других версиях в Issues, мы будем рады вашим отзывам.
  • Если вам требуется использование Python 2, вы можете форкнуть код и внести необходимые изменения самостоятельно. Мы также рады принять ваши вклады в виде PR.

5 Обратная связь по проблемам

  1. Сначала поищите Issues, возможно, кто-то уже задавал похожий вопрос;
  2. Если вы не нашли ответа, откройте новый issue:
    1. Введите краткое описание проблемы в поле "issue title";
    2. Введите подробное описание проблемы в поле "issue details";
    3. Не забудьте указать используемую операционную систему (например, Windows 10) и версию Python (например, Python 3.6.3).
  3. Также можно ознакомиться с Issue Template.

6 Разработка

6.1 Прогресс разработки

Для управления прогрессом разработки используется доска Kanban. Для просмотра прогресса и плановых задач нажмите на v0.5.### 6.2 Тестирование кода

Локальное тестирование выполняется с помощью виртуальной среды Anaconda. Методы тестирования следующие:

# Выполнение тестов
bash scripts/local_test.sh

Онлайн тестирование выполняется с помощью GitHub Actions.

6.3 Тестирование производительности

  • Версия теста: v0.5.1

  • Устройство тестирования: 2.3 ГГц двухъядерный Intel Core i5 MacBook Pro

  • Тестовый код: performance.py

  • Методы тестирования:

    pip install -r requirements_test.txt
    
    python -m cn2an.performance
  • Результаты тестирования:

    Номер Функция Количество выполнений Время выполнения (среднее) Производительность (выполнений/сек)
    1 an2cn 10000 0.15 67к
    2 cn2an 10000 0.35 29к

Тестирование проводилось с использованием максимальной длины тестовых данных. Поэтому, в большинстве случаев производительность библиотеки будет выше!

7 Лицензия

8 Общение

Приглашаем вас добавить WeChat ID: Ailln_, укажите в примечании «cn2an», и я приглашу вас в общение.

9 Благодарности

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

📦 Быстрое преобразование «китайских чисел» и «арабских чисел» ~ (Новое свойство: дроби, даты, температуры и т.д. преобразования) Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Язык

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/X-CCS-cn2an.git
git@api.gitlife.ru:oschina-mirror/X-CCS-cn2an.git
oschina-mirror
X-CCS-cn2an
X-CCS-cn2an
master