IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Pobleme avec un programme


Sujet :

Python

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 21
    Par défaut Pobleme avec un programme
    Bonjour,

    Alors voila je voudrai fair execute ce programme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    recommencer = 0
     
    while recommencer == 0:
    	a = 15
    	b = input('entrez un nombre entre 0 et 20 :')
    	if   a > b :
    	     print a - b
    	     if : a - b > 10 
    		print("perdu")
    		print("recommencer ?")
    		b != 1, 2, 0
    		recommencer = input("0.Oui\n1.Non\n")
     
    	      elif a - b < 10 :
    		print("vous y ete presque !")
    		print("recommencer ?")
    		b != 1, 2, 0
    		recommencer = input("0.Oui\n1.Non\n")
     
    	elif a < b :
    	     print b - a
    	     if : b - a > 10 
    		print("perdu")
    		print("recommencer ?")
                    b != 1, 2, 0
    		recommencer = input("0.Oui\n1.Non\n")
     
    	      elif b - a < 10 :
    		print("vous y ete presque !")
    		print("recommencer ?")
    		b != 1, 2, 0
    		recommencer = input("0.Oui\n1.Non\n")
     
    	else :
    	     print('Vous avez gagner !')
    	     print('recommencer ?')
    	     b != 1, 2, 0
      	     recommencer = input('0.Oui\n1.Non\n')
    Seulement voici le message d'erreur que je recoi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    C:\Documents and Settings\YOHANN>"Bureau\test programme 1.py"
      File "C:\Documents and Settings\YOHANN\Bureau\test programme 1.py", line 14
        elif a - b < 20 :
                        ^
    IndentationError: unindent does not match any outer indentation level

    et aussi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    C:\Documents and Settings\YOHANN>"Bureau\test programme 1.py"
      File "C:\Documents and Settings\YOHANN\Bureau\test programme 1.py", line 8
        if a - b > 20:
        ^
    IndentationError: unexpected indent

    je ne comprend vraiment pas si quelqu'un pouvait m'aide s'il vous plait je désespère

    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Par défaut
    L'erreur est clair, y'a un problème d'espace avant le "elif" (il doit être au même niveau que le "if")

  3. #3
    Membre chevronné
    Inscrit en
    Janvier 2007
    Messages
    329
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 329
    Par défaut
    Salut,

    Il y a des problèmes d'indentation dans ton code ; en Python, l'indentation (l'espace à gauche en début de ligne) doit être identique dans tout un bloc d'instructions. Une erreur fréquente vient de l'utilisation simultanée de tabulations et d'espaces, ce qui semble être le cas dans ton code.

    Les règles "officieuses" de programmation en Python font qu'il est d'usage d'utiliser 4 espaces par niveau. Les tabulations sont à proscrire.


    De plus, il y a des ":" qui traînent au mauvais endroit :
    mauvais : if : a - b > 10
    bon : if a - b > 10:


    -

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 21
    Par défaut
    Bonjour,
    voici le code aprés modification:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    recommencer = 0
     
    while recommencer == 0:
        a = 15
        b = input('entrez un nombre entre 0 et 20 :')
            if a > b:
    	    print a - b
    	    if a - b > 10:
    		print("perdu")
    	        print("voulez vous recommencer ?")
    	        b != 1, 2, 0
    	        recommencer = input("0.Oui\n1.Non\n")
     
    	    elif a - b < 10:
    	        print("vous y ete presque !")
    	        print("voulez vous recommencer ?")
    	        b != 1, 2, 0
    	        recommencer = input("0.Oui\n1.Non\n")
     
            elif a < b:
    	    print b - a
    	    if b - a > 10:
    	        print("perdu")
    	        print("voulez vous recommencer ?")
                    b != 1, 2, 0
    	        recommencer = input("0.Oui\n1.Non\n")
     
    	    elif b - a < 10:
               	print("vous y ete presque !")
    	        print("voulez vous recommencer ?")
    	        b != 1, 2, 0
    	        recommencer = input("0.Oui\n1.Non\n")
     
    	else :
    	     print('Vous avez gagner !')
    	     print('Voulez vous recommencer ?')
    	     b != 1, 2, 0
      	     recommencer = input('0.Oui\n1.Non\n')
    Seulement le message d'erreur est toujours le meme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    C:\Documents and Settings\YOHANN>"Bureau\test programme 1.py"
      File "C:\Documents and Settings\YOHANN\Bureau\test programme 1.py", line 6
        if a > b:
        ^
    IndentationError: unexpected indent

  5. #5
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Mai 2002
    Messages : 309
    Par défaut
    Il y a des problèmes d'indentations déjà à la ligne 6. Et sur d'autres lignes, un mélange de tabulations et d'espaces.

    Je supose que tu ne codes pas dans un EDI !!!

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 21
    Par défaut
    je ne comprend pas où sa ???
    et je ne comprend pas le rapport entre l'indentation et pourquoi sa marche pas ???

  7. #7
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Mai 2002
    Messages : 309
    Par défaut
    Essaie pour voir !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    recommencer = 0
     
    while recommencer == 0:
        a = 15
        b = input('entrez un nombre entre 0 et 20 :')
        if a > b:
            print a - b
            if a - b > 10:
                print("perdu")
                print("voulez vous recommencer ?")
                b != 1, 2, 0
                recommencer = input("0.Oui\n1.Non\n")
     
            elif a - b < 10:
                print("vous y ete presque !")
                print("voulez vous recommencer ?")
                b != 1, 2, 0
                recommencer = input("0.Oui\n1.Non\n")
     
        elif a < b:
            print b - a
            if b - a > 10:
                print("perdu")
                print("voulez vous recommencer ?")
                b != 1, 2, 0
                recommencer = input("0.Oui\n1.Non\n")
     
            elif b - a < 10:
                print("vous y ete presque !")
                print("voulez vous recommencer ?")
                b != 1, 2, 0
                recommencer = input("0.Oui\n1.Non\n")
     
        else :
            print('Vous avez gagner !')
            print('Voulez vous recommencer ?')
            b != 1, 2, 0
            recommencer = input('0.Oui\n1.Non\n')

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 21
    Par défaut
    Sa marche !!!
    merci mais d'où vient l'erreur je ne comprend pas ?

  9. #9
    Membre Expert
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 418
    Par défaut
    À l'armée, on fait des files et il faut qu'aucune tête ne dépasse.
    En Python, on fait des lignes et elles doivent être indentées: c'est plus cool.
    Mais dans les deux cas, c'est rigoureusement comme ça et pas autrement.
    Pourquoi ?
    Parce que comme ça c'est COMME ÇA
    Et si tu veux savoir pourquoi c'est comme ça, écris à Guido van Rossum, ou fait des recherches sur Google.
    Mais si tu bloques la-dessus, tu n'as pas finis de commencer l'apprentissage des débuts......

  10. #10
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Mai 2002
    Messages : 309
    Par défaut
    Citation Envoyé par kepon72 Voir le message
    d'où vient l'erreur je ne comprend pas ?

    Ton code est mal indenté, et il y a des espaces à la place ou avec une tabulation.
    Si tu utilise un EDI pour écrire ton code, cela ne doit pas arriver.
    Si tu utilise la tabulation de l'EDI cela est correct.

    En Python, l'indentation est aussi importante que les ':' en fin de 'if.... :' ou que les '[.....]' des listes..... Cela fait partie du langage Python.

    Pour commencer, utilise IDLE qui est livré avec toutes les versions de Python.

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 21
    Par défaut
    ah ok
    enfaite j'ai remodifier mon code mais je n'arrive pas a obtenir se que je veux:

    je voudrais que se programme s'execute en chaine de maniere a ce que le joueur n'est pas que une seul chance je me sui mit quelque idee dans la tete mais bon c'est encore tres confus car je n'arrive pas a trouver la bonne synthaxe avec 'while'.

    (je suis très consient des erreurs xD)

    voici quand meme le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    from random import randrange
    recommencer = 0
     
    while recommencer == 0:
        a = randrange(0, 20)
        b = input('entrez un nombre entre 0 et 20 :')
        while a > b:
            if a - b < 10:
                print("le nombre cache est plus grand")
            elif a - b > 10 :
                print("perdu")
                print 'le nombre cache etait:',a,''
                print 'la difference est de:',a - b,''
                print("voulez vous recommencer ?")
                b != 1, 2, 0
                recommencer = input("0.Oui\n1.Non\n")
     
            while a < b:
                if b - a < 10:
                    print("le nombre cache est plus petit")
                elif b - a > 10:
                    print("perdu")
                    print 'le nombre cache etait:',a,''
                    print 'la difference est de:',a - b,''
                    print("voulez vous recommencer ?")
                    b != 1, 2, 0
                    recommencer = input("0.Oui\n1.Non\n"
     
                while a == b :
                    print 'vous avez trouve le nombre cache:',a,''
                    print('Vous avez gagner !')
                    print('Voulez vous recommencer ?')
                    b != 1, 2, 0
                    recommencer = input('0.Oui\n1.Non\n')
    evidement j'ai des gros message d'erreur du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    C:\Documents and Settings\YOHANN>"Bureau\jeux du tyrolien.py"
      File "C:\Documents and Settings\YOHANN\Bureau\jeux du tyrolien.py", line 29
        while a == b :
            ^
    SyntaxError: invalid syntax
    seulement je ne sait pas ou mettre ou si il faut mettre 'while' ou nan .
    Merci d'avance

  12. #12
    Membre émérite
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Par défaut
    La SyntaxError qui sort n'est pas due à ton while.
    Regarde juste au dessus.

Discussions similaires

  1. envoyer un mail avec mon programme
    Par shrek dans le forum C++Builder
    Réponses: 8
    Dernier message: 06/12/2006, 12h27
  2. Debutant en JAVA, problème avec 1er programme
    Par Gymerus dans le forum Entrée/Sortie
    Réponses: 13
    Dernier message: 07/09/2005, 12h10
  3. Problème avec un programme éxécuter en console
    Par bzhrobby dans le forum Windows
    Réponses: 2
    Dernier message: 25/04/2005, 10h42
  4. [votre avis m'interesse] Interface avec un programme Java
    Par LineLe dans le forum Interfaces Graphiques en Java
    Réponses: 29
    Dernier message: 11/12/2004, 11h39
  5. Réponses: 5
    Dernier message: 21/11/2004, 18h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo