Короткий мастер-класс, по работе с частями числа и преобразованиями между типами.
Там где требуется разобрать число по цифрам - думаю не стоит мучится с целочисленным делением и остатками. Самое простое - это понять, что число можно преобразовать в строку (если оно уже не является строкой). Далее можно провести такой финт: обратиться к части строки - к одному символу по его индексу через квадратные скобки.
Например:
s = input() # 123456 - это мы ввели с клавиатуры n1 = int(s[0]) # цифра 1 будет в переменной n1 n2 = int(s[1]) # цифра 2 будет в переменной n2 n3 = int(s[2]) # цифра 3 будет в переменной n3 n4 = int(s[3]) # цифра 4 будет в переменной n4 n5 = int(s[4]) # цифра 5 будет в переменной n5
в n1 будет 1, в n2 - будет 2 и т.д.
аналогично:
s = input() # Привет - это мы ввели с клавиатуры s1 = s[0] # П s2 = s[1] # р s3 = s[2] # и s4 = s[3] # в s5 = s[4] # е s6 = s[5] # т
Индекс для обращения к элементу строки начинается с нуля.
Число написать словами:
a1 = ('', 'один', 'два', 'три', 'четыре', 'пять', 'шесть', 'семь', 'восемь', 'девять', 'десять', 'одиннадцать', 'двенадцать', 'тринадцать', 'четырнадцать', 'пятнадцать', 'шестнадцать', 'семнадцать', 'восемнадцать', 'девятнадцать') a2 = ('', 'десять', 'двадцать', 'тридцать', 'сорок', 'пятьдесят', 'шестьдесят', 'семьдесят', 'восемьдесят', 'девяносто') n = int(input()) if n == 0: print('ноль') elif n > 0 and n < 20: print(a1[n]) else: print(a2[n // 10], a1[n % 10])
Возраст с припиской год / лет:
def print_age(age): if age % 10 == 1 and age != 11: print(str(age) + 'год') elif age % 10 >= 2 and age % 10 <= 4 and (age < 10 or age > 20): print(str(age) + ' года') else: print(str(age) + ' лет') print_age(int(input()))