Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Python] Erreur d'indentation

Que je ne vois pas :p

Sujet résolu
    20 mars 2007 à 18:42:44

    Bonjour!

    J'apprends le python grâce au big-tutos dessus dans la partie "Vos-tutos"->"Programmation"->"Python".

    Je suis rendu au TP "Plus ou moins", que j'ai "réussi" à moitié. En effet, je n'arrive pas à voir le résultat de mon travail :p

    J'ai un peu "amélioré" mon script pour m'entrainer. Quand on l'ouvre, il demande de faire un choix: Le TP ou sa correction. Après le script execute soit le code du TP (que j'ai fais donc) ou celui de la correction (du tutos en clair).

    Cependant, quand je double-click sur l'icone dans mon naviguateur, une fenêtre s'ouvre, mais se referme directement. Quand je vais dans IDLE pour voir quelle erreur est affichée, ça m'affiche une erreur d'indentation. Enfin, c'est écrit en anglais, mais je comprend que c'est une erreurr d'indendation.

    Mais je ne la trouve pas, donc j'appelle votre aide :)

    Voici le script:

    selection = input("Selectionnez le TP ou la correction; Pour choisir le TP entrez \"T\", pour la correction entrez \"C\"") #on demande à l'utilisateur de choisir la version du TP (corrigée ou non)

    if selection == "T": #si l'utilisateur veut essayer la version non corrigée...
     

            from random import randrange # on importe la librairie

            nombre_cache = randrange(0, 100) #on génére un nombre entre 0 et 100
            nombre_utilisateur = -1

            while nombre_utilisateur != nombre_cache: #tant que le nombre entré par l'utilisateur n'est pas égal à celui qui a été généré...
                    nombre_utilisateur = input("Entrez un nombre compris entre      0  et 100:") # on demande ou re-demande à l'utilisateur d'entrer un chiffre
                    if nombre_utilisateur < nombre_cache: #si le chiffre entré est plus petit que le chiffre caché
                            print "le nombre caché est plus grand!"
                    elif nombre_utilisateur > nombre cache: #si le chiffre entré est plus grand que le chiffre caché
                            print "Le nombre caché est plus petit!"

            print "Vous avez trouve le nombre caché!" #si c'est exact, on le signale et on sort de la boucle
           
    elif selection == "C": #deuxième selection... c'est les mêmes actions (presque) que celui du dessus, donc c'est les mêmes commentaires ;)

            from random import randrange

            nombre_cache = randrange(0, 100)
            nombre_utilisateur = -1

            while nombre_utilisateur != nombre_cache:

                nombre_utilisateur = input("Entrez un nombre compris entre 0 et 100 : ")
                    if nombre_utilisateur > nombre_cache:
                    print "Le nombre cache est plus petit"
                elif nombre_utilisateur < nombre_cache:
                    print "Le nombre cache est plus grand"

            print "Vous avez trouve le nombre cache !"
           
    else:

            print "Saisie inccorecte! Vous devez saisir soit la lettre T, soit la lettre C. Veuillez resaisir: "

            lettre = input()

            while lettre != "T" or lettre != "C":
                    print "Saisi inccorecte! Vous devez saisir soit la lettre T, soit la lettre C. Veuillez resaisir: "
                    lettre = input()


    Merci d'avance,

    Leroi.
    • Partager sur Facebook
    • Partager sur Twitter
      20 mars 2007 à 19:58:20

      déjà importe randrange au début de ton fichier et au 2eme while, tu as indenté ton if nombre_utilisateur > nombre_cache:

      faut pas ;)

      ++
      • Partager sur Facebook
      • Partager sur Twitter
        21 mars 2007 à 16:32:55

        Bonjour,

        Je sais que c'est pas dans ta question, mais pour simple rappel, une tabulation n'est pas égal à 4 espaces ...

        Aussi n'oublié pas de demandé à votre éditeur favoris de faire le remplacement.
        • Partager sur Facebook
        • Partager sur Twitter
          21 mars 2007 à 17:09:24

          sloshy -> ben si justement, l'indentation c'est 4 espaces =/
          • Partager sur Facebook
          • Partager sur Twitter
            21 mars 2007 à 19:33:48

            Alors :)
            Je vois ( à travers mon IDLE ) 3 erreurs, la première, celle que m'affiche tout le temps mon IDLE :( : l'encodage
            # -*- coding: utf-8 -*-

            rajoute ça tout en haut ;)
            Ensuite, problème au niveau des variables :
            selection = input("Selectionnez le TP ou la correction; Pour choisir le TP entrez \"T\", pour la correction entrez \"C\"") #on demande à l'utilisateur de choisir la version du TP (corrigée ou non)

            if selection == "T": #si l'utilisateur veut essayer la version non corrigée...
             

                    from random import randrange # on importe la librairie

                    nombre_cache = randrange(0, 100) #on génére un nombre entre 0 et 100
                    nombre_utilisateur = -1

                    while nombre_utilisateur != nombre_cache: #tant que le nombre entré par l'utilisateur n'est pas égal à celui qui a été généré...
                            nombre_utilisateur = input("Entrez un nombre compris entre      0  et 100:") # on demande ou re-demande à l'utilisateur d'entrer un chiffre
                            if nombre_utilisateur < nombre_cache: #si le chiffre entré est plus petit que le chiffre caché
                                    print "le nombre caché est plus grand!"
                            elif nombre_utilisateur > nombre cache: #si le chiffre entré est plus grand que le chiffre caché

            dernière ligne de cet extrait : "nombre cahe" tu as oublié l'underscore : "nombre_cache.
            Enfin, il y a effectivement une erreur d'indentation : un if indenté sans raisons ;)
            # -*- coding: utf-8 -*-
            selection = input("Selectionnez le TP ou la correction; Pour choisir le TP entrez \"T\", pour la correction entrez \"C\"") #on demande à l'utilisateur de choisir la version du TP (corrigée ou non)

            if selection == "T": #si l'utilisateur veut essayer la version non corrigée...
             

                    from random import randrange # on importe la librairie

                    nombre_cache = randrange(0, 100) #on génére un nombre entre 0 et 100
                    nombre_utilisateur = -1

                    while nombre_utilisateur != nombre_cache: #tant que le nombre entré par l'utilisateur n'est pas égal à celui qui a été généré...
                            nombre_utilisateur = input("Entrez un nombre compris entre      0  et 100:") # on demande ou re-demande à l'utilisateur d'entrer un chiffre
                            if nombre_utilisateur < nombre_cache: #si le chiffre entré est plus petit que le chiffre caché
                                    print "le nombre caché est plus grand!"
                            elif nombre_utilisateur > nombre_cache: #si le chiffre entré est plus grand que le chiffre caché
                                    print "Le nombre caché est plus petit!"

                    print "Vous avez trouve le nombre caché!" #si c'est exact, on le signale et on sort de la boucle
                   
            elif selection == "C": #deuxième selection... c'est les mêmes actions (presque) que celui du dessus, donc c'est les mêmes commentaires ;)

                    from random import randrange

                    nombre_cache = randrange(0, 100)
                    nombre_utilisateur = -1

                    while nombre_utilisateur != nombre_cache:

                        nombre_utilisateur = input("Entrez un nombre compris entre 0 et 100 : ")
                            if nombre_utilisateur > nombre_cache:
                            print "Le nombre cache est plus petit"

            Après toutes les corrections, il a l'air de marcher :
            # -*- coding: utf-8 -*-
            selection = input("Selectionnez le TP ou la correction; Pour choisir le TP entrez \"T\", pour la correction entrez \"C\"") #on demande à l'utilisateur de choisir la version du TP (corrigée ou non)

            if selection == "T": #si l'utilisateur veut essayer la version non corrigée...
             

                    from random import randrange # on importe la librairie

                    nombre_cache = randrange(0, 100) #on génére un nombre entre 0 et 100
                    nombre_utilisateur = -1

                    while nombre_utilisateur != nombre_cache: #tant que le nombre entré par l'utilisateur n'est pas égal à celui qui a été généré...
                            nombre_utilisateur = input("Entrez un nombre compris entre      0  et 100:") # on demande ou re-demande à l'utilisateur d'entrer un chiffre
                            if nombre_utilisateur < nombre_cache: #si le chiffre entré est plus petit que le chiffre caché
                                    print "le nombre caché est plus grand!"
                            elif nombre_utilisateur > nombre_cache: #si le chiffre entré est plus grand que le chiffre caché
                                    print "Le nombre caché est plus petit!"

                    print "Vous avez trouve le nombre caché!" #si c'est exact, on le signale et on sort de la boucle
                   
            elif selection == "C": #deuxième selection... c'est les mêmes actions (presque) que celui du dessus, donc c'est les mêmes commentaires ;)

                    from random import randrange

                    nombre_cache = randrange(0, 100)
                    nombre_utilisateur = -1

                    while nombre_utilisateur != nombre_cache:

                        nombre_utilisateur = input("Entrez un nombre compris entre 0 et 100 : ")
                        if nombre_utilisateur > nombre_cache:
                            print "Le nombre cache est plus petit"
                        elif nombre_utilisateur < nombre_cache:
                            print "Le nombre cache est plus grand"

                    print "Vous avez trouve le nombre cache !"
                   
            else:

                    print "Saisie inccorecte! Vous devez saisir soit la lettre T, soit la lettre C. Veuillez resaisir: "

                    lettre = input()

                    while lettre != "T" or lettre != "C":
                            print "Saisi inccorecte! Vous devez saisir soit la lettre T, soit la lettre C. Veuillez resaisir: "
                            lettre = input()

            Et voilà :)
            • Partager sur Facebook
            • Partager sur Twitter
              22 mars 2007 à 18:37:24

              Ok, merci à tous!

              Leroi.
              • Partager sur Facebook
              • Partager sur Twitter

              [Python] Erreur d'indentation

              × 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