Простой python модуль для генерации названия числа.
Позволяет получить из числа, например, 100500 его "название" (генерация текста из числа, преобразование числа в текст), например "сто пятьсот". Позволяет так же использовать наименование единиц измерения например 100500 (рублей, рубля, рубль) > "сто пятьсот рублей"
Примеры использования
Генерация названия int числа
>>> from number_to_text import num2text
>>> print num2text(100500)
u"сто пятьсот"
>>> print num2text(1234567891)
u'один миллиард двести тридцать четыре миллиона пятьсот шестьдесят семь тысяч восемьсот девяносто один'
Генерация названия int числа с единицами измерения
>>> from number_to_text import num2text
>>> male_units = ((u'рубль', u'рубля', u'рублей'), 'm')
>>> female_units = ((u'копейка', u'копейки', u'копеек'), 'f')
>>> # male_units это plural-формы для единицы измерения и ее род 'm' - мужской, 'f' - женский
>>> num2text(101, male_units) # первая plural форма, мужской род
u'сто один рубль'
>>> num2text(102, male_units) # вторая plural форма, мужской род
u'сто два рубля'
>>> num2text(101, female_units) # первая plural форма, женский род
u'сто одна копейка'
>>> num2text(102, female_units) # вторая plural форма, женский род
u'сто две копейки'
>>> num2text(105, female_units) # третья plural форма, женский род
u'сто пять копеек'
Генерация названия дробного числа
>>> from number_to_text import decimal2text
>>> import Decimal
>>> int_units = ((u'рубль', u'рубля', u'рублей'), 'm')
>>> exp_units = ((u'копейка', u'копейки', u'копеек'), 'f')
>>> decimal2text(
decimal.Decimal('105.245'),
int_units=int_units,
exp_units=exp_units)
u'сто пять рублей двадцать четыре копейки'
>>> decimal2text( # можно задать число цифр после запятой (округление)
decimal.Decimal('102.2450'),
places=4,
int_units=int_units,
exp_units=exp_units)
u'сто два рубля две тысячи четыреста пятьдесят копеек' xD
Еще больше примеров можно найти в юнит-тестах.
TODO
- Нучиться возвращать не строку а что-то более удобное для дальнейшей обработки.
- Добваить в PyPi ???
- Отрефакторить
- Больше комментариев в коде!