Курсы по программированию

Формула программиста

основатель — Волосатов Евгений Витольдович
Поздравляю с 1 сентября! Система начисления Байтов работает.

 10365

-- Rita

Python3: математика / Число прописью

  • На этом уроке мы реализуем вывод всего числа и его частей прописью
  • Дата отправки отчёта: 28 февраля 2019 г.
  • Задание выполнено: за 2 час. 58 мин.
  • Чему научился: реализовать получение данных прописью в отдельный список
  • Оценка видео-уроку:
Отчёт от 10365 за Python3: математика / Число прописью




Оцени работу

 
Сохранить страницу:

19475. --
Konstantin
Konstantin
ответить
→  Rita  # Python3: математика / Число прописью / 2019-03-01 09:47

Предположу такой вариант(только он без окончаний - сложность русского языка):
def text2int(textnum, numwords={}):
    if not numwords:
      units = [
        "ноль", "один", "два", "три", "четыре", "пять", "шесть", "семь", "восемь",
        "девять", "десять", "одиннадцать", "двенадцать", "тринадцать", "четырнадцать", "пятнадцать",
        "шестнадцать", "семнадцать", "восемнадцать", "девятнадцать",
      ]
      tens = ["", "", "двадцать", "тридцать", "сорок", "пятьдесят", "шестьдесят", "семьдесят", "восемьдесят", "девяносто"]
      scales = ["сто", "тысяч", "миллион", "миллиард", "триллион"]
      numwords["и"] = (1, 0)
      for idx, word in enumerate(units):    numwords[word] = (1, idx)
      for idx, word in enumerate(tens):    numwords[word] = (1, idx * 10)
      for idx, word in enumerate(scales):  numwords[word] = (10 ** (idx * 3 or 2), 0)
    current = result = 0
    for word in textnum.split():
        if word not in numwords:
          raise Exception("Неверное слово: " + word)
        scale, increment = numwords[word]
        current = current * scale + increment
        if scale > 100:
            result += current
            current = 0
    return result + current
print text2int("семьдесят тысяч пятьдесят три")


  • Отчёт оценивали:
    6203Николай Миролюбов+1   1Евгений Волосатов+1   791Валерий Жданов+1   20111Deep Network+1   9752chokayes+1   17947Dmitry Sinitsin+1   20659no name+1   21122Дмитрий0   3922Александр+1   19475Konstantin+1   13417Chip+1   9913vip+1  

Начинаем практику по языку C#





Если вы пришли без приглашения -
введите тысяча двадцать четыре (цифрами).
Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.


Научился: проект разделился на 2 части, в одной иду практически уроку, в другой вдарился в оформление. "Обернул" тело функции фигурными скобочками, а-ля C# )))



Трудности: Я ничего не понял.... Ночь поспал, вылетали уже совсем другие ошибки. Становилось ещё хуже на душе. Кот прыгнул на клавиатуру. Кота прогнал. Убрал несколько пробелов и TABов, которые образовались после "задницЫ" кота. И вуаля. Все работает... Валера, вся надежда на тебя - скажи где была ошибка? Мне не восстановить.