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

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.09.2021, 22:05   #1
kisel2014
Пользователь
 
Регистрация: 04.12.2019
Сообщений: 11
По умолчанию Дано число в диапазоне от 0 до 9999. Приведите данное число к текстовому виду, например 6889– шесть тысяч восемьсот восемьдесят девять

Дано число в диапазоне от 0 до 9999. Приведите данное число на питоне к
текстовому виду, например 6889– шесть тысяч восемьсот восемьдесят девять. Пожалуйста
kisel2014 вне форума Ответить с цитированием
Старый 07.09.2021, 09:57   #2
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,043
По умолчанию

а что разве для этого нет подходящего инструмента что-то import-овать?
Ципихович Эндрю вне форума Ответить с цитированием
Старый 07.09.2021, 21:31   #3
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

Код:
d = {0: 'ноль',
     1: 'один',
     2: 'два',
     3: 'три',
     4: 'четыре',
     5: 'пять',
     6: 'шесть',
     7: 'семь',
     8: 'восемь',
     9: 'девять',
     10: 'десять',
     11: 'одиннадцать',
     12: 'двенадцать',
     13: 'тринадцать',
     14: 'четырнадцать',
     15: 'пятьнадцать',
     16: 'шестьнадцать',
     17: 'семьнадцать',
     18: 'восемьнадцать',
     19: 'девятьнадцать',
     20: 'двадцать',
     30: 'тридцать',
     40: 'сорок',
     50: 'пятьдесят',
     60: 'шестьдесят',
     70: 'семьдесят',
     80: 'восемьдесят',
     90: 'девяносто',
     100: 'сто',
     200: 'двести',
     300: 'триста',
     400: 'четыреста',
     500: 'пятьсот',
     600: 'шестьсот',
     700: 'семьсот',
     800: 'восемьсот',
     900: 'девятьсот',
     1000: 'одна тысяча',
     2000: 'две тысячи',
     3000: 'три тысячи',
     4000: 'четыре тысячи'
}
x = 711
z = x // 100
s = d[z*100]

y = x % 100
if y <= 20:
    s = s + '  ' + d[y]
else:
    m = y // 10
    n = y % 10
    s = s + '  ' + d[m*10] + '  ' + d[n]
print(s)
ВНИМАНИЕ: Это не решение задачи.
Этот пример показывает, как её можно решить.
Можно отметить повторяемость частей числительных и "ужать" словарь.

PS: И конечно же есть достаточно много модулей, которые выполняют это более аккуратно.
Но об использовании модулей ничего не сказано.
Как-то так, ...

Последний раз редактировалось ViktorR; 07.09.2021 в 22:00.
ViktorR вне форума Ответить с цитированием
Старый 08.09.2021, 06:13   #4
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,043
По умолчанию

подскажите какие модули это решают? спс
Ципихович Эндрю вне форума Ответить с цитированием
Старый 09.09.2021, 06:52   #5
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Ципихович Эндрю, например, num2words (первое, что нагуглилось). Возможно, ViktorR знает еще примеры.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дано целое число в интервале 1...999999999. Записать данное число прописью, используя функции для определения сотен, десятков и единиц. Halikarnas Паскаль, Turbo Pascal, PascalABC.NET 2 09.06.2017 18:09
Дано вещественное число. Проверить: принадлежит ли данное число промежутку: [-1;1]. valodu Помощь студентам 1 02.03.2016 13:41
Дано натуральное число n (n < 9999). Выяснить, различны ли все четыре цифры этого числа fanatloko Паскаль, Turbo Pascal, PascalABC.NET 5 23.06.2013 21:01
Дано трехзначное число. Если в сумме его цифр присутствует число 7,то число записать в зеркальном виде ( Паскаль ) Эля777 Помощь студентам 5 22.04.2013 23:23
Дано четырехзначное число, заданное в символьном виде, например, '1954'. Напечатать его текстом, например gred Помощь студентам 13 31.03.2008 22:24