CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Saison Python

QuentinZanardi
QuentinZanardi
Niveau 1
12 octobre 2020 à 16:34:52

Bonjour,

Je suis débutant en python et j'ai un devoir à rendre avec la consigne suivante:

Définissez une fonction qui renvoie une des chaînes de caractères 'été', 'automne', 'hiver', 'printemps' en fonction de la saison d’une date donnée par son numéro de jour et de mois. On supposera les débuts des saisons suivants :

printemps le 20 mars
été le 21 juin
automne le 22 septembre
hiver le 21 décembre

J'ai alors fait ceci :

def saison(jj,mm):
"""
Paramètres :
- jj (int): jour
- mm(int) : mois
Valeur de retour : chaine de caractères
Contraintes :
-1<=jj<=31
-1<=mm<=12
Exemples :
>>> saison(12/10)
automne
>>> saison(1/1)
hiver
>>> saison(21/6)
été
>>> saison(40/7)
date non valide
"""
if (mm=12 and jj>=21) or (mm=1) or (mm=2) or (mm=3 and jj<21):
print 'hiver'
elif (mm=3 and jj>=20) or mm=4 or mm=5 or (mm=6 and jj<21):
print 'printemps'
elif (mm=6 and jj>=21) or mm=7 or mm=8 or (mm=9 abd jj<=21):
print 'été'
else:
print 'automne'

Mais il m'annonce un SyntaxError pour cette ligne de code :

if (mm=12 and jj>=21) or (mm=1) or (mm=2) or (mm=3 and jj<21):

Si quelqu'un pouvait m'aider ça serait très gentil de sa part

Merci beaucoup.

PS: Je suis vraiment nul ^^'

cybevil
cybevil
Niveau 27
12 octobre 2020 à 17:13:03

Pour tester l'égalité on fait "==", le "=" sert pour l'affectation
Pour print tu dois rajouter des parenthèses : print("Hiver")
Vérifie tes and t'as fait une faute de frappe.

Message édité le 12 octobre 2020 à 17:13:14 par cybevil
Azerban
Azerban
Niveau 16
12 octobre 2020 à 21:20:48

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))
Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment