Предмет: Информатика, автор: yoga67

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

Ответы

Автор ответа: vimmortal2
1

Программа:
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. И для остальных оставшихся чисел мы возвращаем словесный вид его первой цифры через пробел со словесном видом второй цифры. В конце - вызываем этот метод, передав ему введённое целое число с клавиатуры.

Похожие вопросы