Je ne sais pas si il y a une contrainte dans ton exercice mais tu peux parser la date et connaître le jour de l'année. Ensuite tu construis tes saisons et si le jour de l'année est dans le jour des saisons, tu renvoies la saison. Il faut juste saisir une année pour le parsing mais tu peux choisir n'importe laquelle (les saisons ne changent pas). Voilà le code :
# https://www.jeuxvideo.com/forums/42-47-64505629-1-0-1-0-saison-python.htm
# saisons.py
import datetime
def saison(jour: int, mois: int) -> str:
"""Renvoie la saison en fonction de la date.
Args:
jour (int): Jour du mois.
mois (int): Mois de l'année.
Returns:
str: Retourne la saison.
"""
year = 2020 # on choisit n'importe quelle année pour le parsing
first_day_spring = datetime.datetime(
year=year, month=3, day=20).timetuple().tm_yday
first_day_summer = datetime.datetime(
year=year, month=6, day=21).timetuple().tm_yday
first_day_fall = datetime.datetime(
year=year, month=9, day=22).timetuple().tm_yday
first_day_winter = datetime.datetime(
year=year, month=12, day=21).timetuple().tm_yday
spring = [*range(first_day_spring, first_day_summer)]
summer = [*range(first_day_summer, first_day_fall)]
fall = [*range(first_day_fall, first_day_winter)]
# winter -> the rest
day = datetime.datetime(year=year, month=mois,
day=jour).timetuple().tm_yday
if day in spring:
return "Printemps"
elif day in summer:
return "Été"
elif day in fall:
return "Automne"
else:
return "Hiver"
if __name__ == "__main__":
# On appelle la fonction (on s'amuse à choisir un jour avant le début d'une nouvelle saison.)
print(saison(20, 12))
print(saison(19, 3))
print(saison(20, 6))
print(saison(21, 9))