Цикл for.Python
С экрана вводится натуральное число произвольной длины.
Назовите его x.
Определите, какая цифра встречается в нем чаще, 3 или 5.
Назовите счетчики цифр 3 и 5 именами k3 и k5 соответственно.
Выведите соответствующее сообщение.
Выведите также значения k3 и k5.
Если во введённом числе нет ни одной из цифр 3 и 5, то выведите
об этом соответствующее сообщение. В противном случае постройте число,
в котором сначала идут цифры 5, записанные k5 раз,
а потом цифры 3, записанные k3 раза.
Назовите его y. Выведите это число на экран.
Также выведите число y1, которое на 7 меньше полученного.
Например, если было введено x = 59643339938765231, то должно
быть выведено число y = 5533333 и число y1 = 5533326.
Замечание: используйте операции целочисленной арифметики (НЕ строки).
'''
Python 3.7.2
x = int(input(), base = 10)
k3 = k5 = 0
for digit in map(int, list(str(x))):
if digit is 3: k3 += 1
elif digit is 5: k5 += 1
#Что бы не городить огромные условные конструкции,
#Мы просто "выключим" программу при кривом вводе
if k3 == k5 == 0: raise RuntimeError('bad input')
#Если введённое число не имеет нужных цифр - вылетаем с ошибкой Runtime error и сообщаем об этом
print(f'цифр 5 больше, счётчики: k3: {k3}, k5: {k5}' if (k5 > k3) else f'цифр 3 больше, счётчики: k3: {k3}, k5: {k5}')
y = int('5'*k5 + '3'*k3)
y1 = y - 7
#Это можно засунуть в print(), но раз уж надо...
print(x, y, y1, end = '\n')
Объяснение:
На скриншотах представлены исходный код программы в рабочем виде, без поломанных отступов, а так же результат работы для предложенных входных данных. Если сильно надо программу просто скопировать, сдать и забыть, а отсюда не копируется - попросите в комментариях, я залью это на какой нибудь сервис типа pastebin.