Почему 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
Ну или вы просто неправильно передали код. Возможно, ошибка как раз в этом блоке