Я не совсем уверен, почему ваш код не работает, но у меня есть решение:
def is_leap(year):
if year%4 == 0:
if year%100 == 0:
if year%400 == 0:
return True #divisible by 4, divisible by 100, and divisible by 400
else:
return False #divisible by 4 and divisible by 100
else:
return True #divisible by 4 and not divisible by 100
else:
return False #not divisible by 4
И чтобы проверить это:
for i in range(1000, 2501, 4):
if not is_leap(i):
print(str(i)) # this will print all the "irregular" leap years between 1000 and 2500
Кроме того, я не уверен, где вы запускаете этот код, но вопрос действительно задает логические значения (True или False), и вы вместо этого возвращаете годы, так что это может быть причиной того, что вы получаю ошибку.