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 :

Problème script liste. [Python 3.X]


Sujet :

Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    laborantin cimenterie
    Inscrit en
    Décembre 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : laborantin cimenterie
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2014
    Messages : 12
    Points : 5
    Points
    5
    Par défaut Problème script liste.
    Bonjour,

    Je vous soumets le code qui ne s'exécute pas correctement.

    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
    a = input("Veuillez saisir la longueur du côté a:  ")
    b = input("Veuillez saisir la longueur du côté b:  ")
    c = input("Veuillez saisir la longueur du côté c:  ")
    s = []
    while a.isdigit() == False:
        a =input("Veuillez ressaisir la longueur du côté a:  ")
    while b.isdigit() == False:
        b =input("Veuillez ressaisir la longueur du côté b:  ")
    while c.isdigit() == False:
        c =input("Veuillez ressaisir la longueur du côté c:  ")
    int(a) , int(b) , int(c)
    if  c < (a+b) and a < (b+c) and  b < (a+c):
        print("Un triangle peut être construit")
        s.append(a) , s.append(b) , s.append(c) , s.sort()
        a = s[0] , b = s[1] , c = s[2]
        if int(c)**2 == int(a)**2 + int(b)**2:
            if s[0] == s[1]:
                print("Il s'agit d'un triangle rectangle isocèle")
            else:
                print("Il s'agit d'un triangle rectangle")
        elif s[0] == s[1] and s[1] == s[2]:
             print("Il s'agit d'un triangle équilatéral")
        elif s[0] == s[1] or s[1] == s[2] or s[0] == s[2] :
            print("Il s'agit d'un triangle isocèle")
        else:
            print("Il s'agit d'un triangle quelconque")
    else:
        print("Un triangle ne peut pas être construit")
    Ps : Le script s'inspire de l'exercice 6.11 du livre "Apprendre à programmer avec python 3" de Gérard Swinnen.

    Bonne journée et merci d'avance.

  2. #2
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 812
    Points : 7 097
    Points
    7 097
    Par défaut
    Bonjour,

    Quelle est l'erreur renvoyée par votre interpréteur python ?
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  3. #3
    Membre expérimenté Avatar de plxpy
    Homme Profil pro
    Ingénieur géographe
    Inscrit en
    Janvier 2009
    Messages
    792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur géographe
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2009
    Messages : 792
    Points : 1 481
    Points
    1 481
    Par défaut
    Bonjour

    D'abord, tout à fait d'accord avec fred1599 : pourquoi nous laisser chercher ?

    Sinon, cri du coeur : Pouah, quelle horreur !!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    s.append(a) , s.append(b) , s.append(c) , s.sort()
    a = s[0] , b = s[1] , c = s[2]
    Tu détournes la "multi-affectation" possible en python :

    Cela devient illisible !
    C'est le ';' qui permet de mettre plusieurs instructions sur une même ligne et c'est à utiliser avec des pincettes.

    EDIT : que mon "cri du coeur" ne te bloque pas ! C'était une réaction épidermique. Par contre, précise nous ce qui se passe quand tu rentres telles ou telles valeurs (message(s) d'erreur) : autant utiliser notre temps à débrouiller ce qui cloche plutôt qu'à essayer de reproduire les erreurs
    "La simplicité ne précède pas la complexité, elle la suit." - Alan J. Perlis
    DVP ? Pensez aux cours et tutos, ainsi qu'à la FAQ !

  4. #4
    Futur Membre du Club
    Homme Profil pro
    laborantin cimenterie
    Inscrit en
    Décembre 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : laborantin cimenterie
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2014
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    Re bonjour,

    C'est bon j'ai trouvé c'était un problème de classe "str" et "int" à alterner pour que tout se fasse normalement, et une erreur sur la conversion en classe int, j'ai également tenu compte au moins partiellement de tes remarques plxpy.
    Je mets le code final.

    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
    a = input("Veuillez saisir la longueur du côté a:  ")
    while a.isdigit() == False:
        a =input("Veuillez ressaisir la longueur du côté a:  ")
    b = input("Veuillez saisir la longueur du côté b:  ")
    while b.isdigit() == False:
         b =input("Veuillez ressaisir la longueur du côté b:  ")
    c = input("Veuillez saisir la longueur du côté c:  ")
    while c.isdigit() == False:
        c =input("Veuillez ressaisir la longueur du côté c:  ")
    s = []
    a = int(a) ;b = int(b) ;c = int(c)
    s.append(a) ;  s.append(b) ;  s.append(c) ; s.sort()
    if a < (c+b) and b < (a+c) and c < (a+b) :
        print("Un triangle peut être construit")
        a , b , c = s[0] , s[1] , s[2]
        if c**2 == a**2 + b**2:
            if s[0] == s[1]:
                print("Il s'agit d'un triangle rectangle isocèle")
            else:
                print("Il s'agit d'un triangle rectangle")
        elif s[0] == s[1] and s[1] == s[2]:
            print("Il s'agit d'un triangle équilatéral")
        elif s[0] == s[1] or s[1] == s[2] or s[0] == s[2] :
            print("Il s'agit d'un triangle isocèle")
        else:
            print("Il s'agit d'un triangle quelconque")
    else:
        print("Un triangle ne peut pas être construit")
    @+ Bonnes fêtes.

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

Discussions similaires

  1. Problème script calcul liste déroulante
    Par Linea26 dans le forum Développement Web en Java
    Réponses: 1
    Dernier message: 15/02/2012, 11h42
  2. [AJAX] Script ajax dynamic list
    Par Mihawk dans le forum AJAX
    Réponses: 4
    Dernier message: 06/10/2009, 13h30
  3. [Batch] Problème Script liste des tâches planifiés de plusieurs serveurs
    Par waner442 dans le forum Scripts/Batch
    Réponses: 7
    Dernier message: 26/08/2009, 15h33
  4. Debug script listes déroulantes liées
    Par AnTiX dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 20/04/2005, 12h03
  5. [script] liste des pays FR / DE
    Par Husqvarna dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 12/03/2005, 18h39

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