Почему Python выводит ошибку

Я тренируюсь решать разные задачи на python, решаю такую задачу "Написать функцию date, принимающую 3 аргумента — день, месяц и год. Вернуть True, если такая дата есть в нашем календаре, и False иначе".

Я хочу реализовать эту задачу так ( код ) :

def date(day, month, year):
if year % 2 == 1: # Проверяем год, на високосность
    if month <= 12: # Проверяем месяц, правильное ли количество месяцев
        if month != 2:
            if month % 2 == 0: # Проверяем месяц, (30 или 31 дней)
                if day <= 30: # Проверяем день на правильность их количества в месяце
                    return True
        elif month == 2:
            elif:
                else:
                    return False
    
    else:
        return False

elif year % 2 == 0:
    elif month <= 12:
        elif month == 2:
            elif month % 2 == 0:
                elif day <= 29:
                    return True
        else:
            return False
                else:
                    return False

date(10, 5, 2021)

Выдаёт ошибку : "File "МОЙ ПУТЬ", line 7 return True TabError: inconsistent use of tabs and spaces in indentation". Ошибок табуляции я не нашёл. Поэтому и не могу решить задачу


Ответы (2 шт):

Автор решения: sigalgleb

Предлагаю посмотреть в сторону решения с использованием модуля datetime:

from datetime import date

def check_date(y, m, d):
  try: 
    date(y, m, d) # Проверяем получается ли дата из наших значений
    return True
  except:
    return False

print(check_date(2018, 2, 28)) # True, есть в календаре
print(check_date(2018, 2, 29)) # False, нет в календаре
→ Ссылка
Автор решения: moondust

Подскажу заранее, что в условии первым делом нужно ставить if, а после elif или else

elif month == 2:
            elif:  # ошибка
                else:  # ошибка
                    return False

Ну или вы просто неправильно передали код. Возможно, ошибка как раз в этом блоке

→ Ссылка