Печать
Просмотров: 680

Короткий мастер-класс, по работе с частями числа и преобразованиями между типами.

Там где требуется разобрать число по цифрам - думаю не стоит мучится с целочисленным делением и остатками. Самое простое - это понять, что число можно преобразовать в строку (если оно уже не является строкой). Далее можно провести такой финт: обратиться к части строки - к одному символу по его индексу через квадратные скобки.

Например:

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()))