Partage
  • Partager sur Facebook
  • Partager sur Twitter

PEP 08

j' ai pas comprit

Sujet résolu
    15 décembre 2011 à 13:13:19

    Bonjour à tous, voilà j' ai un gros souci depuis une semaine avec Python...Alors lorsque j' applique
    l' exemple du cour sur les conditions, l' exemple et le suivant:

    age = 21
    if age >= 18: # si age est supérieur ou égal à 18
        print("Vous êtes majeur.")
    else: # sinon (age inférieur à 18)
        print("Vous êtes mineur.")
    


    je ne peux dépasser la 2emes ligne "print("vous etes majeur")" sa me renvoi l' erreure: "IndentationError: expected an indented block"

    Du coup je suis allé sur le topic de nohar pour essayer de trouver l' erreur et là je seches... :euh:
    De plus j' ai rien comprit à PEP 08 effectivement il en est question dans cette même partie du cour.

    Merci par avance pour votre aide, j'espère que ce post n'est pas un doublons :-°
    • Partager sur Facebook
    • Partager sur Twitter
      15 décembre 2011 à 15:35:51

      Montre ton code, pas celui du cours. Tu n'indentes visiblement pas ton code, alors que c'est essentiel en Python.

      Par ailleurs, les liens comme celui que tu as en signature sont interdits, je l'ai supprimé.
      • Partager sur Facebook
      • Partager sur Twitter
        15 décembre 2011 à 15:39:00

        Comment exécutes-tu ce code ?

        Tu le tapes dans la console python ?

        Si oui (et il y a de très grandes chances que ce soit le cas…), alors tu dois indenter cette ligne avec une tabulation (touche ) et non des espaces.

        Hmm en fait non ça fonctionne aussi très bien avec des espaces, sous Linux en tout cas. Décris-nous précisément la façon dont tu essayes d'exécuter ton code s'il te plait.
        • Partager sur Facebook
        • Partager sur Twitter
        Zeste de Savoir, le site qui en a dans le citron !
          15 décembre 2011 à 15:56:51

          @fayden je suis étonné pour la signature car je n' avais rien mis à la base, toutes mes excuses o_O

          Concernant le code j' ai écrit exactement le même ( avec une variante) pour m' entrainer, car à la base j' avais commencé par apprendre le C et je me suis arrété au pointeur pour mieux reprendre par la suite, du coup la notion "indenter" je n' ai pas saisi la subtilité... :(
          • Partager sur Facebook
          • Partager sur Twitter
            15 décembre 2011 à 16:49:45

            Relis cette sous-partie du tuto. La notion d'indentation et de blocs y est expliquée (et pour le coup ça n'a rien à voir avec la PEP8).
            • Partager sur Facebook
            • Partager sur Twitter
            Zeste de Savoir, le site qui en a dans le citron !
              15 décembre 2011 à 16:55:49

              o_O franchement doit etre débile je l' ai relu 5/6 fois et j' ai pas capté...
              • Partager sur Facebook
              • Partager sur Twitter
                15 décembre 2011 à 17:11:42

                5/6 fois… en l'espace de 6 minutes ?!

                Relis-le lentement, il n'y a vraiment aucune ambiguïté sur cette sous-partie.

                Sinon, qu'est-ce que tu ne comprends pas précisément ?
                • Partager sur Facebook
                • Partager sur Twitter
                Zeste de Savoir, le site qui en a dans le citron !
                  15 décembre 2011 à 17:12:46

                  Bah en gros, après un bloc, tout ceux qui ont un double point, tu dois laisser 4 espaces de plus que sur la ligne précedente avant d'écrire ton code ;)
                  • Partager sur Facebook
                  • Partager sur Twitter
                    15 décembre 2011 à 17:22:40

                    c'était une expression de l avoir relu 5/6 fois :) ce que je comprend pas c'est par exemple ce que me dit l3coyott3, j' arrive pas à saisir ce principe super simple et sa me rend dingue :colere: je vais relire et faire des essais ce soir, en tous les cas merci pour vos réponses je dois faire pitier à lire :lol:
                    • Partager sur Facebook
                    • Partager sur Twitter
                      15 décembre 2011 à 17:51:50

                      Salut, si tu utilise l' IDE fournit avec python ... c'est peut être du à cas car, enfin chez moi, à chaque fois que j'essaie de coder avec celui-ci il me sort des problème d’indentation de partout alors qu'il n'y en a aucun donc j'ai trouvé un technique je n'utilise plus l'IDE
                      • Partager sur Facebook
                      • Partager sur Twitter
                        15 décembre 2011 à 18:56:51

                        Citation : SWING_C

                        j' arrive pas à saisir ce principe super simple et sa me rend dingue



                        Que celui à qui ça n'est jamais arrivé te jette la première pierre ;)

                        Le plus simple est déjà que tu postes une copie d'écran de là où tu as écrit ton code avec vue sur le message d'erreur.
                        • Partager sur Facebook
                        • Partager sur Twitter
                          15 décembre 2011 à 19:14:21

                          o_O @ rayon-gama tu utilises quoi alors??? perso j' utilise python 3.2.2 j'utilise comme il est dit dans le tuto le commande line, meme si au début j' utilisais IDLE (python GUI) là encore je trouve ça fouilli sur quoi utiliser...Vous allez finir par croire que je n' aime pas ce langage :lol: je tiens à dire que justement j' aime beacoup ce langage, car je sors d' une partie du C et je dois dire que le langage python me parle plus malgrès les soucis technique, mais une fois réglé je pourrais avancer....enfin j' espère :p

                          voici la copie de mon écran:
                          http://imageshack.us/photo/my-images/641/erreurs.jpg/

                          ce que je fais lorsque j' écris mon code vous avez du sans doute lz voir, je déclare ma variable puis je tape entrée,
                          ensuite j' écris "if age>=**:" pui encore une fois entrée et là j' ai 3 petits point qui s affiche "..." j' écris "print("vous etes majeur") pui snetrée et là j' ai le message comme sur l' image... :euh:
                          • Partager sur Facebook
                          • Partager sur Twitter
                            15 décembre 2011 à 19:22:08

                            sers toi d'un éditeur de texte (celui de ton choix)

                            et enregistre en .py

                            exécute ensuite en ligne de commande

                            c'est bien plus pratique et clair.
                            • Partager sur Facebook
                            • Partager sur Twitter
                              15 décembre 2011 à 19:24:28

                              oui mais comment savoir si on se trompe? par exemple en C je savais là ou j avais un souci...
                              • Partager sur Facebook
                              • Partager sur Twitter
                                15 décembre 2011 à 19:26:56

                                Le traceback que Python te donne est extrêmement clair, malheureusement tu ne sais pas ce qu'est l'indentation. Renseigne-toi sur le sujet, personne ne peut le faire à ta place.
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  15 décembre 2011 à 19:36:15

                                  Citation : SWING_C

                                  oui mais comment savoir si on se trompe? par exemple en C je savais là ou j avais un souci...



                                  python.exe t'indique où se situe l'erreur
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    15 décembre 2011 à 20:04:20

                                    ok bon ba retoure case départ, c'est pas très clair, c'est dommage...je sais même pas si on doit favoriser gui python ou le commande line, l' incrémentation on dirait que c'est LE mystère, je démarre de zéro, donc le trace back il me parle pas plus que ça, sa fait une heure que je cherche et que je relis le tuto des conditions, mais il n y a rien qui me parle. >_<
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      15 décembre 2011 à 20:11:20

                                      Citation : SWING_C

                                      ok bon ba retoure case départ, c'est pas très clair, c'est dommage...je sais même pas si on doit favoriser gui python ou le commande line, l' incrémentation on dirait que c'est LE mystère, je démarre de zéro, donc le trace back il me parle pas plus que ça, sa fait une heure que je cherche et que je relis le tuto des conditions, mais il n y a rien qui me parle. >_<


                                      C'est très clair, c'est toi qui n'es pas prêt. Inutile de sauter les étapes, si tu ne comprends pas ce qu'est l'indentation, tu as encore beaucoup de chemin à faire avant de programmer.
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        15 décembre 2011 à 20:20:48

                                        Le problème vient du fait que après tes deux points, tu dois indenter ton code (le décaler vers la droite, pour que python puisse l'interpréter correctement, comme appartenant au bloc d'instruction qui précède).
                                        Sous la console que tu utilises, les trois petits points ne signifient pas que ton bloc est déjà indenté, tu dois rajouter toi même une indentation (une espace suffit normalement).

                                        Bon courage !
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          15 décembre 2011 à 20:22:47

                                          Citation : SWING_C

                                          ok bon ba retoure case départ, c'est pas très clair, c'est dommage...je sais même pas si on doit favoriser gui python ou le commande line, l' incrémentation on dirait que c'est LE mystère, je démarre de zéro, donc le trace back il me parle pas plus que ça, sa fait une heure que je cherche et que je relis le tuto des conditions, mais il n y a rien qui me parle. >_<



                                          c'est pourtant vraiment pas compliqué

                                          fais l'analogie avec le C pour essayer de comprendre

                                          en C quand tu fais un if avec plusieurs instructions tu les englobe avec {}, si tu ne le fais pas ça n'ira pas

                                          en python on a pas besoin de {} mais pour que cela fonctionne il faut quand même différencier les instructions faisant parti du bloc condition (ou autre), et ça se fait grâce à l'indentation

                                          elle est optionnelle mais utile à la compréhension en C
                                          elle est obligatoire en python

                                          en gros c'est ça, et si tu ne comprends toujours pas après m'avoir lu effectivement il y a un soucis :(
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            15 décembre 2011 à 20:26:38

                                            @ Obsidien mille merci ( aux autres aussi :p ) je viens de comprendre, j' ai fait le test et sa fonctionne super!!!

                                            Merci à vous tous pour votre patience :D

                                            ps: @Stav31: je viens de capter le truc, fait pas beau de vieillir pour moi :lol: merci encore ;)
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                            Anonyme
                                              15 décembre 2011 à 20:27:46

                                              indentation error est avant tout une erreur courante de débutant

                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                15 décembre 2011 à 20:32:51

                                                Pas de soucis, j'avais eu le même problème au début, bonne continuation.
                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  15 décembre 2011 à 20:35:51

                                                  :lol: je suis rassuré de pas être le seul, je trouve ça dommage que dans le tuto il n y est pas plus d'explication. je passe le sujet comme résolu ;)
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    15 décembre 2011 à 20:42:17

                                                    Image utilisateur

                                                    Le message de nohar donne un lien vers le tutoriel qui explique exactement ce qu'Obsidien a résumé.
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      15 décembre 2011 à 20:51:57

                                                      oui après coup j' ai relu le message et effectivement c'est ce qu' il disait, c'est pour cela que je vous est tous remercié ;)

                                                      Une question par curiosité, existe t il d' autre IDE pour python?
                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        15 décembre 2011 à 20:52:36

                                                        Citation : SWING_C


                                                        voici la copie de mon écran:
                                                        http://imageshack.us/photo/my-images/641/erreurs.jpg/



                                                        En effet, l'image montre bien tu n'as pas indenté toi-même. Mais effectivement c'est assez trompeur puisqu'une fois passé à la ligne, sans avoir indenté volontairement, le code est décalé de la marge avec les trois points. Il est donc parfaitement compréhensible que tu aies rencontré une difficulté, voire une difficulté insurmontable.


                                                        Mon conseil : ignore la console Windows pas pratique du tout, utilise IDLE, l'éditeur par défaut de Python, il n'est pas très sexy, il peut planter mais il est parfaitement adapté à l'initiation, voire plus. Je te conseille en outre de travailler en mode fichier qu'en mode console (la console, c'est le shell avec le prompt de forme >>>) car il est beaucoup plus facile de modifier le code. En particulier, sous IDLE et dans la console comme en mode fichier, tu n'aurais pas eu le problème d'ambiguïté d'indentation que tu as rencontré avec la console Windows car la console d'IDLE ne place les trois petits points sous le prompt.

                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          15 décembre 2011 à 21:18:02

                                                          Citation : SWING_C


                                                          Une question par curiosité, existe t il d' autre IDE pour python?



                                                          Il paraît que ninja-ide est bien. Personnellement je n'utilise pas d'IDE du tout. Mais étant donné que tu débutes et que tu travailles sous Windows, je ne crois pas que je suis un bon exemple à suivre dans ton cas. :)
                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                          Zeste de Savoir, le site qui en a dans le citron !
                                                            15 décembre 2011 à 21:23:05

                                                            je vais regarder ça, merci pour l' info ^^
                                                            • Partager sur Facebook
                                                            • Partager sur Twitter

                                                            PEP 08

                                                            × 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