Annonce

Réduire
Aucune annonce.

Problème avec script Python année Bissextile

Réduire
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • Problème avec script Python année Bissextile

    Salut à tous ,

    Je rédige ce message au risque de paraitre "leger" aux yeux de Sakarov mais tant pis , je me jette à l'eau !
    Ayant commencé mon apprentissage du language python , je rencontre déjà quelques soucis . Je m'explique : ( Cours de SDZ sur Python )

    A un moment donnée , l'auteur du tuto parle du "commentaire" dans le programme , je comprend qu'il doit commencer par un # , mais je ne comprend pas comment on le cloture ..
    Quelqu'un pourrait m'éclairer ?

    Deuxieme soucis , qui est bien plus préoccupant que le premier , j'en suis arrivé au stade de rédiger mon premier programme en Python , le fameux programme des années bissextile . J'arrive parfaitement à comprendre les fonctions utilisées ect ... Mais je ne comprend pas du tout l'énoncé , ni la correction , je cite :

    " Je vous rappelle les règles qui déterminent si une année est bissextile ou non (vous allez peut-être même apprendre des choses que le commun des mortels ignore). Une année est dite bissextile si c'est un multiple de 4, sauf si c'est un multiple de 100. Toutefois, elle est considérée comme bissextile si c'est un multiple de 400.

    Je développe : 

    Si une année n'est pas multiple de 4, on s'arrête là, elle n'est pas bissextile.  Si elle est multiple de 4, on regarde si elle est multiple de 100.  Si c'est le cas, on regarde si elle est multiple de 400.  Si c'est le cas, l'année est bissextile.  Sinon, elle n'est pas bissextile.  Sinon, elle est bissextile . "

    - Un multiple de 100 est forcément multiple de 400 non ? Pardonnez mon niveau en math .
    Ceci me pose vraiment problème dans la compréhension du programme ..

    Ma troisième question porte sur la correction ( milieu du programme ) de cet exercice :
    Code:
    "
       # Programme testant si une année, saisie par l'utilisateur,
    # est bissextile ou non
    
    annee = input("Saisissez une année : ") # On attend que l'utilisateur saisisse l'année qu'il désire tester
    annee = int(annee) # Risque d'erreur si l'utilisateur n'a pas saisi un nombre
    bissextile = False # On crée un booléen qui vaut vrai ou faux
                       # selon que l'année est bissextile ou non
    
    if annee % 400 == 0:
        bissextile = True
    elif annee % 100 == 0:
        bissextile = False
    elif annee % 4 == 0:
        bissextile = True
    else:
        bissextile = False
    
    if bissextile: # Si l'année est bissextile
        print("L'année saisie est bissextile.")
    else:
        print("L'année saisie n'est pas bissextile.") 
    
    "
    POURQUOI faire la consigne à l'envers ? ( 400 , puis 100 , puis 4 ) Et puis , pourquoi "elif" et pas "if" pour chaque calcul ?

    Vous l'aurez compris , ce passage me pose vraiment probleme , merci a ceux qui auront pris la peine de me lire
    Dernière modification par _47, 07 décembre 2013, 19h19. Motif: Ajout des balises [code]
    C'est en se trompant qu'on apprend , l'échec est la mère du succès .

  • #2
    Un commentaire commençant avec # se termine à la fin d'une ligne. Aussi, si je ne me trompe pas, tu peux utiliser les trois quotes (""") pour débuter un commentaire de plusieurs ligne puis réinsérer les trois quotes en fin de commentaire.

    Ensuite, un multiple de 100 n'est pas forcément un multiple de 400, exemple : 500 est un multiple de 100 (500/100 = 5) mais n'est pas un multiple de 400 (500/400 = 1,25).

    Pour l'ordre des conditions, ça n'a ici pas d'importance car les conditions ne sont pas "encastrée". Je m'explique : si elle était encastrée, on aurait obtenu qlque chose comme ceci ( je sais que les accolades ne sont pas utilisées en python mais la tabulation ne fonctionne pas sur ce message ):

    Code:
    if(condition)
    {
    if(condition)
    {
    bissextile = true
    }
    }
    
    Mais ici nous avons : 
    
    if(condition)
    {
    }
    elif(condition)
    {
    }
    Voit-tu, chacune de ces conditions sont indépendantes, c'est à dire qu'elle ne dépende pas elle-même d'une autre condition.

    Je t'avoue par contre justement que je ne comprend pas pourquoi toutes les conditions sont "indépendantes" car comme dit dans l'énoncé : Si elle est multiple de 4, ALORS on regarde si elle est multiple de 100.

    Après, on utilise elif au lieu de if car c'est tout simplement à ça qu'il sert, à vérifier une AUTRE condition que la précédente mais avec la MEME variable (ici annee).

    J'espère t'avoir aidé et ne pas m'être trompé.
    Dernière modification par _47, 07 décembre 2013, 19h20. Motif: Ajout des balises [code]
    Mess with the best, Die like the rest

    Commentaire


    • #3
      Salut !

      Attention tu t'es trompé, si l'année est un multiple de 4 elle peut petre vérifié il faut donc mettre une deuxième condition pour vérifié si elle est multiple de 100 ou non

      Si non elle est bissextile, par contre si elle est multiple de 100 elle ne sera pas bissextile

      et si tout ça n'est pas pris en compte (donc si l'année n'est pas un multiple de 4) il faut vérifié si elle est multiple de 400, si elle l'est elle est bissextile

      Sinon elle ne l'est pas


      Penses à te le dire en français et même à le rédiger si tu n'y arrives pas ^^


      Vivement JourSuivant


      E: Si jamais t'as des problèmes je peux peut être t'aider ajoute moi sur skype weekz.sydowh
      Dernière modification par WeekZ, 06 décembre 2013, 07h53.

      Commentaire


      • #4
        C'est bien l'entraide entre apprenants, je vous le conseille

        Commentaire

        Chargement...
        X