Опубликован: 01.11.2024 45
Условие: Напишите функцию, которая будет принимать число (от 0 до 999), а возвращать это число прописью (на русском языке).
Например: func(123) # выведет 'сто двадцать три'
Решение:
def num_to_word(num):
units = ['ноль', 'один', 'два', 'три', 'четыре', 'пять',
'шесть', 'семь', 'восемь', 'девять']
teens = ['десять', 'одиннадцать', 'двенадцать', 'тринадцать',
'четырнадцать', 'пятнадцать', 'шестнадцать',
'семнадцать', 'восемнадцать', 'девятнадцать']
tens = ['двадцать', 'тридцать', 'сорок', 'пятьдесят', 'шестьдесят',
'семьдесят', 'восемьдесят', 'девяносто']
hundreds = ['сто', 'двести', 'триста', 'четыреста', 'пятьсот',
'шестьсот', 'семьсот', 'восемьсот', 'девятьсот']
if 0 <= num <= 9:
return units[num]
elif 10 <= num <= 19:
return teens[num - 10]
elif 20 <= num <= 99:
if num % 10 == 0:
return tens[num // 10 - 2]
else:
return f"{tens[num // 10 - 2]} {units[num % 10 ]}"
elif 100 <= num <= 999:
if num % 100 == 0:
return hundreds[num // 100]
elif 1 <= num % 100 <= 9:
return f"{hundreds[num // 100 - 1]} {units[num % 100]}"
elif 10 <= num % 100 <= 19:
return f"{hundreds[num // 100 - 1]} {teens[num % 100 - 10]}"
elif 20 <= num % 100 <= 99:
if num % 10 == 0:
return f"{hundreds[num // 100 - 1]} {tens[(num % 100)//10 - 2]}"
else:
return f"{hundreds[num // 100 - 1]} {tens[(num % 100) // 10 - 2]} {units[num % 10 ]}"
else:
return 'число слишком большое'
print(num_to_word(178))
# сто семьдесят восемь
Задача: Решение квадратного уравнения
Задача: Тренажер таблицы умножения
Задача: Наибольший числовой палиндром
Задача: Разложение числа на простые множители
Комментариев нет.