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 :

Soucis de Syntaxe/Indent' ?


Sujet :

Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 26
    Points : 15
    Points
    15
    Par défaut Soucis de Syntaxe/Indent' ?
    Bonjour à tous, je post ici car j'avais un programme à coder en cours, je l'ai réalisé, mais il bug à un endroit.. Cela fait environ deux heures que je cherches mais je ne trouve pas où est mon erreur (le programme ne me met pas d'erreur de syntaxe)

    Voici 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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    restart = 1
    i = 0
    while (restart == 1) :
        print ("Bienvenue dans le programme de calcul de volume d'un parrallépipède rectangle,\nCodé sous Python 3.2 par Azraël")
        print ("Choisissez votre unité de mesure : ")
        units = ["hm","km","dam","dm","cm","mm","µm","nm","pm","m"]                 # List d'unité
        u = input()
        u = str(u)
        while u not in units :                                                  # Condition
            u = input()
            u = str(u)
            print ("Unité non reconnue, entrez en une nouvelle:")
        print ("L'unité choisie est le",u) 
        print ("Entrez la Longueur L")
        L = input()
        L = float(L)
        while ( L <= 0):
            while (i<3):
                if(L == 0):
                    print ("La Longueur doit être différent de 0 !")
                    i += 1
                    print ("Donnez moi une nouvelle valeur :")
                    L = input()
                    L = float(L)
                if(L < 0):
                    print("La Longueur doit être supérieur à 0 !")
                    i += 1
                    print("Donnez moi une nouvelle valeur :")
                    L = input()
                    L = float(L)
            if (i == 3):
                print("...Vous insistez, j'abandonne !")
                print("Aurevoir et bonne journée")
                i += 1
                restart = 0
        L = float(L)
        print ("Longueur = " , L , u)
        print ("Entrez la Largeur l")
        l = input()
        l = float(l)
        while ( l <= 0):
            while (i<3):
                if(l == 0):
                    print ("La largeur doit être différent de 0 !")
                    i += 1
                    print ("Donnez moi une nouvelle valeur :")
                    l = input()
                    l = float(l)
                if(l < 0):
                    print("La largeur doit être supérieur à 0 !")
                    i += 1
                    print("Donnez moi une nouvelle valeur :")
                    l = input()
                    l = float(l)
            if (i == 3):
                print("...Vous insistez, j'abandonne !")
                print("Aurevoir et bonne journée")
                i += 1
                restart = 0
        while (l > L ):
            while (i<3):
                if(l == 0):
                    print ("La largeur doit être différent de 0 !")
                    i += 1
                    print ("Donnez moi une nouvelle valeur :")
                    l = input()
                    l = float(l)
                if(l < 0):
                    print("La largeur doit être supérieur à 0 !")
                    i += 1
                    print("Donnez moi une nouvelle valeur :")
                    l = input()
                    l = float(l)
            if (i == 3):
                print("...Vous insistez, j'abandonne !")
                print("Aurevoir et bonne journée")
                i += 1
                restart = 0
            print ("Longueur doit être supérieure à la largeur")
            print ("Entrez une nouvelle valeur")
            l = input()
            l = float(l)
     
        print ("Largeur = ",l,u)
        print ("Entrez la Hauteur H") 
        H = input()
        H = float(H)
        while ( H <= 0):
            while (i<3):
                if(H == 0):
                    print ("La Hauteur doit être différent de 0 !")
                    i += 1
                    print ("Donnez moi une nouvelle valeur :")
                    H = input()
                    H = float(H)
                if(l < 0):
                    print("La Hauteur doit être supérieur à 0 !")
                    i += 1
                    print("Donnez moi une nouvelle valeur :")
                    H = input()
                    H = float(H)
            if (i == 3):
                print("...Vous insistez, j'abandonne !")
                print("Aurevoir et bonne journée")
                i += 1
                restart = 0
        print ("Hauteur = ", H , u)
        V = L * l * H
        V = float(V)
        print ("Calcul du volume :")
        print ("Votre parrallépipède possede un volume de",V,u,"^3")
        print(n,"? Voulez vous recommencer ?")
        print("1 - Oui")
        print("2 - Non")
        restart = input()
        restart = int(restart)
        if (restart == 2):
            print("Aurevoir et bonne journée ",n,".")
    En fait , le programme bug si on entre L = 0, le programme s'arrete et n'execute pas le bloc d'instruction suivante.
    Voici le code concerné :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    while ( L <= 0):
            while (i<3):
                if(L == 0):
                    print ("La Longueur doit être différent de 0 !")
                    i += 1
                    print ("Donnez moi une nouvelle valeur :")
                    L = input()
                    L = float(L)
                if(L < 0):
                    print("La Longueur doit être supérieur à 0 !")
                    i += 1
                    print("Donnez moi une nouvelle valeur :")
                    L = input()
                    L = float(L)
    Voili voilou, si quelqu'un avait la gentillesse de m'indiquer mon erreur, et un moyen de la corriger.. Merci d'avance !
    Cordialement, Azraël_

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 941
    Points : 1 384
    Points
    1 384
    Par défaut
    Si l'utilisateur rentre d'abord une valeur de L < 0, et ensuite une valeur positive, le programme va tourner indéfiniment dans la boucle while (i<3). En effet, aucun des deux test (L == 0 et L < 0) n'est vrai si L > 0, donc i ne sera pas incrémenté et la boucle tournera "à vide".

    Il y a plusieurs solutions possibles; par exemple tu pourrais combiner les deux boucles imbriquées en une seule:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    while L <= 0 and i < 3:
        ...
    ou utiliser l'instruction break pour sortir de la boucle while (i<3) lorsque l'utilisateur entre une valeur positive.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 26
    Points : 15
    Points
    15
    Par défaut
    Merci pour ta réponse, pourrais tu m'expliquer rapidement le principe du break ?
    En tout cas je teste tout de suite ta réponse, merci encore .

  4. #4
    Membre expérimenté
    Avatar de Luke spywoker
    Homme Profil pro
    Etudiant informatique autodidacte
    Inscrit en
    Juin 2010
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant informatique autodidacte

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 077
    Points : 1 742
    Points
    1 742
    Par défaut
    Salut de python scolaire,
    La directive break permet d'arreter une boucle souvent contenue dans une structure conditionnelle de type if, plus aucune instruction contenue dans la boucle n'est exécuter après cette directive.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    from random import randint
    a=8
    while True :
      b=randint(0,100) # Tire un nombre aléatoire entre 0 et 100
      if b == a :
        print str(b)
        break
     
    8
    la preuve:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    from random import randint
    a=8
    while True :
      b=randint(0,100) # Tire un nombre aléatoire entre 0 et 100
      if b == a :
        break
        print str(b) 
     
    #pas de 8.
    Bon cours a toi.
    Pour faire tes armes:
    Use du présent pour construire ton futur sinon use de ce que tu as appris auparavant.
    Et sois toujours bien armé avant de te lancer.
    Le hasard ne sourit qu'aux gens préparés...
    Site: Website programmation international (www.open-source-projects.net)
    Site: Website imagerie 3D (www.3dreaming-imaging.net)
    Testez aux moins pendant une semaine l'éditeur avec terminaux intégrées it-edit Vous l'adopterai sûrement !
    FUN is HARD WORK !!!

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 26
    Points : 15
    Points
    15
    Par défaut
    D'accord, merci à toi pour cette explication !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. petit soucis de syntaxe
    Par teen6517 dans le forum Langage
    Réponses: 2
    Dernier message: 03/04/2007, 19h58
  2. Soucis de Syntaxe Popup
    Par kaki33 dans le forum Langage
    Réponses: 2
    Dernier message: 28/03/2006, 09h12
  3. Réponses: 4
    Dernier message: 20/03/2006, 11h21
  4. [ASP] Souci de syntaxe
    Par Mvu dans le forum ASP
    Réponses: 6
    Dernier message: 04/02/2006, 08h38
  5. [langage] ptit souci de syntaxe
    Par marouanitos dans le forum Langage
    Réponses: 2
    Dernier message: 26/09/2003, 10h28

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