Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Python]Exercice conditions

Sujet résolu
    25 juillet 2006 à 17:44:53

    Bonjours à tous,
    déjà désolé pour le titre, mais je trouve pas comment résumé mon problème, et vu que c'est en parti en rapport avec l'exercice sur les conditions, j'ai mis ca comme titre ^^

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-

    a = "bonjour"

    if a == 2786 :
            print "a est egal a 2786"
    elif a < 1000 :
            print "a est inferieur à 1000"
    elif a == 1000 :
            print "a est egal a 1000"
    elif a > 1000 :
            print "a est superieur a 1000"
    else :
            print "a n'est pas un chiffre"


    Comme vous le voyez, j'ai voulu tester si on entrait une chaine de caractère, il disait bien "a n'est pas un chiffre" or voici le résultat que j'ai
    a est superieur a 1000


    Pourrait-on m'expliquer ce "comportement" de python?

    Merci à tous ;)
    • Partager sur Facebook
    • Partager sur Twitter
      25 juillet 2006 à 20:17:26

      aucune idée :p
      c'est bourrin comme programme , dans les trucs comme ca tu doit toujour convertir toi meme le string en int :)
      voila un methode pour faire fonctionner ton code :
      #!/usr/bin/env python
       # -*- coding: utf-8 -*-
       
      a = "bonjour"
      try:
              a = int(a)
              if a == 2786 :
                      print "a est egal a 2786"
              elif a < 1000 :
                      print "a est inferieur à 1000"
              elif a == 1000 :
                      print "a est egal a 1000"
              elif a > 1000 :
                      print "a est superieur a 1000"
      except(ValueError):
              print "a n'est pas un chiffre"
      • Partager sur Facebook
      • Partager sur Twitter
        25 juillet 2006 à 21:11:21

        Ok merci Kedare. Mais je peux pas encore "pondre" des trucs que j'ai pas encore vu ^^

        ps: je suis le tuto du sdz ;)
        • Partager sur Facebook
        • Partager sur Twitter
          30 juillet 2006 à 11:22:57

          Quand tu écris a = "bonjour" tu enregistres une variable de type string (texte) et si tu cherches à effectuer des "if a > 1000 :" c'est incohérant, et python estime que la condition est vérifiée (je ne saurais pas en dire davantage).

          Pour faire des "if a > 1000 :" il faut impérativement que a soit un nombre. C'est pour cela que Kedare a utilisé le a = int(a), pour transformer a en nombre. De ce fait, si à la base tu écris a="1" a est de type srting, et après int(a) a sera un nombre de type int.

          Seulement si a est de type string mais qu'il comporte des caractères autres que des chiffres, il est impossible de transformer a en string. Logique, tu ne peux pas convertir "bonjour" en chiffres. Donc si a="bonjour" et qu'on exécute a=int(a) python retourne une erreur.

          Pour gérer cet erreur Kedare t'a suggéré d'utiliser try:

          try: indique que les instructions qui suivront seront éxécutées sous réserve par python, c'est à dire que si elles provoquent une erreur, python exécutera les instructions associées au "exept" et laissera tomber celles du try.

          L'intérêt ici ?
          Si a n'est pas convertible on retourne que a n'est pas un chiffre, s'il est convertible, on peut effectuer les conditions. Et s'il est déjà de type int (nombre) pas de problème pour autant, il reste un nombre après l'usage de la fonction int().

          J'espère avoir été clair, je sais qu'on a pas encore vu tout ça dans le cours, mais c'est effectivement important que tu comprennens bien pour poursuivre ton apprentissage :D

          Amicalement,

          Jokester


          Edit : en fait tu me donnes un excellent exemple pour intruduire les try, except et else ^^. Merci à toi :)
          • Partager sur Facebook
          • Partager sur Twitter
            30 juillet 2006 à 16:16:34

            Merci :)
            Toujours aussi clair Jokester :)
            Enfait python c'est assez simple à lire, parce que sans connaitre, j'avais plus au moins compris de quoi il en retournait :p
            Pour l'exemple, de rien c'est mon role de zer0 d'aider :p

            Bonne continuation pour le cours au passage ;)
            • Partager sur Facebook
            • Partager sur Twitter
              30 juillet 2006 à 21:13:09

              Heureux d'avoir pu t'aider !
              Ce sera moins simple avec la partie sur wxpython nierk nierk nierk (j'en ai bavé pour comprendre, et je maîtrise pas encore :p) !!
              • Partager sur Facebook
              • Partager sur Twitter

              [Python]Exercice conditions

              × 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