Partage
  • Partager sur Facebook
  • Partager sur Twitter

[tuto, partie 4, 3] question

    3 novembre 2011 à 12:44:02

    Salut.
    Je me suis mis hier à la lecture/application du cours sur Python (très bien fait d'ailleurs, pour l'instant j'aime beaucoup), et j'en suis arrivé à la partie « Votre premier programme ! »mais j'aurais une question; après avoir lu l'énoncé, il m'est venu tout naturellement ce code:
    ## test annee bissextile
    print("Entrez une annee:")
    annee = input()
    annee = int(annee)
    if annee % 4 == 1: print("Annee non bissextile")
    if annee % 4 == 0:
    	if annee % 100 == 0:
    		if annee % 400 == 0: print("Annee bissextile")
    		else:  print("Annee non bissextile")
    	else: print("Annee bissextile")
    else: print("Annee bissextile")
    


    qui est quand même très différent de celui proposé. Je sais qu'il est dit que la solution proposé n'est pas la seule, mais j'aurais voulu savoir si il y avait, par exemple, une différence au niveau de la vitesse de lecture/exécution des différents codes?

    Merci d'avance pour la/les réponse(s), et bonne journée! :-)
    • Partager sur Facebook
    • Partager sur Twitter
      3 novembre 2011 à 16:53:06

      Pour un programme de cette envergure, non. Par contre, apprends à utiliser `and` et `or`, et passe à la ligne après un `if`.
      • Partager sur Facebook
      • Partager sur Twitter
        3 novembre 2011 à 17:01:51

        Bonjour, je ne sais pas si c'est cela que tu recherches mais tu peux effectuer un petit test pour visualiser la rapidité d'exécution de ton code:

        import time
        
        print("Entrez une annee:")
        annee = input()
        
        debut = time.clock()
        
        annee = int(annee)
        if annee % 4 == 1: print("Annee non bissextile")
        if annee % 4 == 0:
        	if annee % 100 == 0:
        		if annee % 400 == 0: print("Annee bissextile")
        		else:  print("Annee non bissextile")
        	else: print("Annee bissextile")
        else: print("Annee bissextile")
        
        fin = time.clock()
        
        print("{:.3} CPU seconds".format(fin - debut))
        
        • Partager sur Facebook
        • Partager sur Twitter
          3 novembre 2011 à 17:45:28

          VainEntetement: D'accord, merci. T'as raison pour or et and, mais là c'était un code vite fait, et le plus important : samarsh. :)

          Asimoov: Merci!
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            3 novembre 2011 à 21:06:17

            Citation

            mais j'aurais voulu savoir si il y avait, par exemple, une différence au niveau de la vitesse de lecture/exécution des différents codes?



            Pour ce code? Clairement Non!

            Par contre la méthode, Asimoov te la donne
            • Partager sur Facebook
            • Partager sur Twitter
              4 novembre 2011 à 13:01:09

              Bonjour, le principal problème (avant la vitesse d'exécution, quand ça sera un problème tu le saura pour l'instant c'est pas important) c'est le fait que le programme soit correct ce qui n'est pas le cas pour l'instant (2002, 2003 ne sont pas des années bissextiles).

              Tu devrais faire un truc du genre:
              if annee % 4 == 0:
                # vérifier si c'est bissextile, en gérant les multiples de 100 et 400
              else:
                # là tu es sûr que ça n'est pas bissextile
              


              Edit: 2001 est à la fois bissextile et non bissextile? (c'est le chat Schrödinger qui va être content :p)
              • Partager sur Facebook
              • Partager sur Twitter
                4 novembre 2011 à 13:46:34

                Ouais, tu n'as pas du bien comprendre comment `%` marchait.
                • Partager sur Facebook
                • Partager sur Twitter

                [tuto, partie 4, 3] question

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown