
Решить в Python 8. Напишите программу, которая вводит целое число, не превышающее 100, и выводит
его прописью, например, 21-«двадцать один».

Ответы на вопрос

Программа:
Python:
def number_in_words(number):
if number == 100:
return "сто"
else:
numbers_simple = {1: "один", 2: "два", 3: "три", 4: "четыре", 5: "пять",
6: "шесть", 7: "семь", 8: "восемь", 9: "девять"}
teens = {11: "одиннадцать", 12: "двенадцать", 13: "тринадцать", 14: "четырнадцать", 15: "пятнадцать",
16: "шестнадцать", 17: "семнадцать", 18: "восемнадцать", 19: "девятнадцать"}
dozens = {10: "десять", 20: "двадцать", 30: "тридцать", 40: "сорок", 50: "пятьдесят",
60: "шестьдесят", 70: "семьдесят", 80: "восемьдесят", 90: "девяносто"}
digit1 = number % 10
digit2 = number // 100
if number < 10:
return numbers_simple.get(number)
elif number in dozens and number >= 10:
return dozens.get(number)
elif 10 < number < 20:
return teens.get(number)
else:
return dozens.get(digit2) + " " + numbers_simple.get(digit1)
print(number_in_words(int(input())))
Объяснение:
Объявляем функцию number_in_words, которая и обозначает перевод числа в его прописной вид. Далее делаем проверку, передано ли нам число "100", если это так - выводим текст "сто". Также делаем для нуля. Иначе выполняем следующий код...
Регистрируем 3 словаря: 1 - для цифр (numbers_simple), от 1 до 9; 2 - для чисел от 11 до 19; 3 - для десятков. Далее - получаем первую цифру и последнюю цифру числа в переменные digi2 и digi1 соответственно.
Далее, если число меньше 10 - то возвращаем его словесный вид из словаря numbers_simple с помощью get(). Если число находится в десятках (и оно больше либо равно 10), возвращаем это число из словаря teens. Если число находится в интервале от 10 до 20, то возвращаем это число в словесном виде из словаря teens. И для остальных оставшихся чисел мы возвращаем словесный вид его первой цифры через пробел со словесном видом второй цифры. В конце - вызываем этот метод, передав ему введённое целое число с клавиатуры.



Для решения этой задачи, вы можете воспользоваться библиотекой num2words
, которая позволяет конвертировать числа в их текстовое представление на разных языках, включая русский. Сначала убедитесь, что у вас установлена данная библиотека. Вы можете установить ее с помощью pip
, если она еще не установлена:
bashpip install num2words
Затем можно написать программу на Python для ввода числа и его вывода прописью:
pythonfrom num2words import num2words
def main():
try:
number = int(input("Введите целое число (не более 100): "))
if 0 <= number <= 100:
words = num2words(number, lang='ru')
print(f'{number} - "{words}"')
else:
print("Число должно быть в диапазоне от 0 до 100.")
except ValueError:
print("Вы ввели некорректное значение. Пожалуйста, введите целое число.")
if __name__ == "__main__":
main()
Эта программа сначала проверяет, что введенное число находится в диапазоне от 0 до 100, а затем использует num2words
для преобразования числа в текстовое представление на русском языке.


Похожие вопросы
Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili