Привет!
Ошибку на фотографии можно увидеть в выводе интерпретатора Python. Она указывает на то, что вы пытаетесь вызвать функцию len() на объекте типа int, который не поддерживает такую операцию. В вашем случае number является int (целым числом), потому что вы преобразовали входные данные из input() с помощью int() на строке 3.
Чтобы исправить это, вам нужно не преобразовывать входные данные в int до тех пор, пока вы не выполните все операции, требующие строкового представления. Вот как можно изменить ваш код:
def is_square(n):
return int(n**0.5)**2 == n
number_str = input("Введите четырехзначное число: ")
if len(number_str) == 4 and number_str.isdigit():
number = int(number_str)
min_digit = min(number_str)
max_digit = max(number_str)
even_count = sum(1 for digit in number_str if int(digit) % 2 == 0)
odd_count = sum(1 for digit in number_str if int(digit) % 2 != 0)
square_digit_count = sum(1 for digit in number_str if is_square(int(digit)))
is_square_number = is_square(number)
is_divisible_by_3 = number % 3 == 0
print('Наименьшая цифра в числе:', min_digit)
# Остальные строки вывода, которые требуются по заданию
# После этих исправлений код должен работать исправно
В этом коде входное значение сначала сохраняется в виде строки (number_str), что позволяет использовать len() и isdigit(). Далее все необходимые операции, которые требуют целочисленные значения, выполняются уже после преобразов
