Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème pour le premier TP "bissextile"

Sujet résolu
    15 novembre 2010 à 23:54:06

    Salut, je commence à apprendre le python et je suis arrivé au TP sur les années bissextiles et je bloque car:

    1) Je n'ai pas accès au soit disant récapitulatif

    Citation

    Mais vous pourriez préférer écrire votre code directement dans un fichier que vous pourrez exécuter. Si c'est le cas, je vous renvoie au récapitulatif traitant de ce point.



    2) Ne sachant pas comment faire pour exécuter mon script à partir d'un fichier, je le fais dans la console, mais à chaque fois que je tape une ligne, ça l'exécute ( normal ). Du coup, comment je peux faire pour taper le programme en entier dans la console pour qu'il s'exécute à la fin de l'écriture de celui-ci ? Car c'est pas marrant de taper : " print("Entrez une date"); le terminal affiche la phrase; annee = int(input()); le terminal vous demande une date; etc..." A moins que je ne m'y prenne pas de la bonne façon...?

    A+
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      16 novembre 2010 à 0:07:55

      En effet, le lien est mort... Il faudrait le signaler aux auteurs.

      Un peu plus loin dans le tuto (deuxième chapitre sur la modularité), tu trouveras ton bonheur. ;)
      • Partager sur Facebook
      • Partager sur Twitter
        16 novembre 2010 à 0:36:08

        Avec un module il testera son code d'un coup et il ne saura pas comment voir quelles sont ses erreurs ligne par ligne.
        J'ai le même problème.
        • Partager sur Facebook
        • Partager sur Twitter
          16 novembre 2010 à 13:29:31

          Bin au pire, si jamais ça plante, je tape le code ligne par ligne dans le terminal, nan ?
          • Partager sur Facebook
          • Partager sur Twitter
            16 novembre 2010 à 14:02:30

            Non.

            Si ça plante, tu commence par regarder le message d'erreur. Cela te donnera des indications importantes sur ce qui a fait planter ton programme, et la ligne exacte à laquelle le programme a planté.

            Si malgré ça tu n'arrives pas à debugger ton programme (ce qui m'étonnerait), tu es bon pour utiliser pdb..
            • Partager sur Facebook
            • Partager sur Twitter
              16 novembre 2010 à 14:46:26

              Citation : Arkon

              Avec un module il testera son code d'un coup et il ne saura pas comment voir quelles sont ses erreurs ligne par ligne.
              J'ai le même problème.



              Comme je n'ai jamais utilisé la technique de la modularité, avec ce qu'a dit Arkon, je croyais que ça n'indiquait pas où se trouvait les erreurs, mais si c'est le cas, il n'y a plus de problème =)

              [EDIT]

              Désolé pour le double poste, mais je suis arrivé à la 2eme partie sur la modularité et je rencontre un problème :

              si je nomme mon fichier "xxx.py" et que je double clique dessus, dans la barre des "fenêtres" en bas de l'écran, apparait "lancement de xxx.py" or rien ne se passe pendant 5 à 10s puis l'indication disparait. Du coup, je peux pas profiter de mon programme.

              Voici le contenu du fichier xxx.py :

              # -*-coding:utf-8 -*
              
              
              # programme testant si une année, entrée par l'utilisateur,
              # est bissextile ou non
              
              print("Entrez une année :")
              annee = input() # on attend que l'utilisateur entre l'année qu'il désire tester
              annee = int(annee) # risque d'erreur si l'utilisateur n'a pas rentré un nombre
              
              if annee%400==0 or (annee%4==0 and annee%100!=0):
                  print("L'année entrée est bissextile.")
              else:
                  print("L'année entrée n'est pas bissextile.")
              


              Et si je nomme mon fichier "xxx" sans le ".py" et que je rajoute ça au début :
              #!/usr/bin/python3
              


              ça fait la même chose ! Sachez que je n'ai pas changé les droits d'exécution du fichier, car je ne sais comment faire, est ce ça le problème ?
              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                17 novembre 2010 à 18:37:42

                J'aurais du te diriger tout de suite vers le chapitre en annexe du tuto... :-°
                • Partager sur Facebook
                • Partager sur Twitter
                  17 novembre 2010 à 18:51:44

                  #!/usr/bin/python3 n'est à utiliser que si tu es sous un système Unix. Si tu es sous Windows il faut simplement laisser l'extension .py
                  Sinon, le plus simple pour un programme en console, plutôt qu'à chaque fois se prendre la tête avec des pause et input() et que sais-je, ça reste de le lancer depuis la console, étant donné le peu de temps nécessaire pour apprendre à se servir des instructions cd et ls/dir, ça reste à mon avis le plus rentable.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    17 novembre 2010 à 20:06:34

                    Yop me revoilà, donc en fait c'était bien les droits du fichier qui étaient la source du problème. Pour ceux qui ont eu quelque chose de similaire, il faut faire :

                    clique droit -> propriété -> Permissions -> autoriser l'execution du fichier comme un programme.

                    Voilà ! :D

                    au cas ou, mon programme final:

                    #!/usr/bin/python3.1
                    # -*-coding:utf-8 -*
                    
                    
                    # programme testant si une année, entrée par l'utilisateur,
                    # est bissextile ou non
                    
                    print("Entrez une année :")
                    annee = input() # on attend que l'utilisateur entre l'année qu'il désire tester
                    annee = int(annee) # risque d'erreur si l'utilisateur n'a pas rentré un nombre
                    
                    if annee%400==0 or (annee%4==0 and annee%100!=0):
                        print("L'année entrée est bissextile.")
                    else:
                        print("L'année entrée n'est pas bissextile.")
                    
                    input("Appuyez sur ENTREE pour fermer ce programme...")
                    


                    A+, merci pour votre aide, je passe en résolu ! ( mais attendez vous à me revoir ^^' ).
                    • Partager sur Facebook
                    • Partager sur Twitter

                    Problème pour le premier TP "bissextile"

                    × 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