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

Tkinter Python Discussion :

Problème réinitialisation de liste


Sujet :

Tkinter Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    alternant
    Inscrit en
    Septembre 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : alternant

    Informations forums :
    Inscription : Septembre 2021
    Messages : 2
    Par défaut Problème réinitialisation de liste
    Bonjour, je débute sur Python et je me suis lancé dans le développement d'une petit IHM pour effectuer un calcul de PGCD tout simple.

    Sauf que je suis confronté à un problème que je n'arrive pas à résoudre...

    Lorsque je rentre des nombres qui se divisent bien, pas de soucis, cependant lorsque les nombres n'ont pas de diviseur commun, le résultat reste celui du précédent calcul. (je pense que le programme plante...)

    Voici le code que j'ai écris (je suis débutant, désolé si c'est pas très bien écrit, pas commenté ou trop long pour le peu à faire...) :

    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
    from tkinter import *
     
    liste = []
    liste2 = []
     
    def action():
        n1 = int(entryNombre1.get())
        n2 = int(entryNombre2.get())
     
        for x in range(1,n1):
            resultat = 0
            resultat = n1/x
            if int(resultat) == resultat:
                 liste.append(int(resultat))
        for y in range(1,n2):
            resultat2 = 0
            resultat2 = n2/y
     
            if int(resultat2) == resultat2:
                liste2.append(int(resultat2))
     
        liste_finale = []
     
        for element in liste:
            if element in liste2:
                liste_finale.append(element)
     
        resultat_final = liste_finale[0]
        entryResultat.delete(0,END)
        entryResultat.insert(0 , resultat_final)
     
        entryNombre1.delete(0, END)
        entryNombre2.delete(0, END)
     
    fen = Tk("PGCD")
    fen.geometry("400x300")
     
    nombre1 = Label(fen, text = "Veuillez écrire le premier nombre : ")
    nombre1.place( x = 20 , y = 75 )
    entryNombre1 = Entry(fen)
    entryNombre1.place( x = 250 , y = 75 )
     
    nombre2 = Label(fen, text = "Veuillez écrire le deuxième nombre : ")
    nombre2.place( x = 20 , y = 115 )
    entryNombre2 = Entry(fen)
    entryNombre2.place( x = 250 , y = 115 )
     
    resultat = Label(fen , text="Le PGCD est : ")
    resultat.place( x = 150 , y = 215 )
    entryResultat = Entry(fen)
    entryResultat.place( x = 250 , y = 215 )
     
     
    valider = Button(fen, text="Valider" , command=action)
    valider.place(x= 300 , y = 150)
     
    fen.mainloop()

    Merci d'avance pour votre aide.

    Tucow

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 738
    Par défaut
    Salut,

    Citation Envoyé par tucow Voir le message
    Lorsque je rentre des nombres qui se divisent bien, pas de soucis, cependant lorsque les nombres n'ont pas de diviseur commun, le résultat reste celui du précédent calcul. (je pense que le programme plante...)
    Si le programme plante vous devriez avoir un message d'erreur qui s'affiche sur le terminal qui dit quelle erreur a été provoquée par quelle instruction et à quelle ligne.

    Après, l'Entry résultat se contente d'afficher le premier élément de liste_finale remplie avec les contenus de liste et liste2... qui ne sont jamais remises à zéro.

    Travaillez autrement: commencez par écrire une fonction pgcd(a, b) qui retourne le pgcd des entiers a et b (qui est définit pour toute paire de nombres).... et supprimez vos listes (qui ne servent à rien).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Candidat au Club
    Homme Profil pro
    alternant
    Inscrit en
    Septembre 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : alternant

    Informations forums :
    Inscription : Septembre 2021
    Messages : 2
    Par défaut
    Bonjour,

    Merci pour la réponse très rapide.

    Je vais essayer de faire comme vous le dites, mais je ne comprends pas très bien le fonctionnement des fonctions, après c'est à moi de me débrouiller pour comprendre.

    Tucow

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 738
    Par défaut
    Salut,

    Citation Envoyé par tucow Voir le message
    mais je ne comprends pas très bien le fonctionnement des fonctions, après c'est à moi de me débrouiller pour comprendre.
    Il y a plein de tutos. qui expliquent cela très bien.

    Après c'est un concept "puissant" que vous devez vous approprier... en abusant de la chose...

    Découper son programme en un tas de fonction de quelques lignes pour voir ce que ça donne. Réfléchir à l'intérêt de regrouper cette suite d'instructions mais pas plus en une fonction. Toucher un peu les fonctions récursives, comprendre la portée des variables, la notion de fonction "pure",...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Problème avec des listes et des variables
    Par Knuckles dans le forum Général Python
    Réponses: 3
    Dernier message: 09/05/2006, 18h24
  2. Petit problèmes avec display list et transformations
    Par Baptiste Wicht dans le forum OpenGL
    Réponses: 5
    Dernier message: 10/02/2006, 17h00
  3. Problème incompréhensible! Fichier + liste
    Par djsbens dans le forum C
    Réponses: 2
    Dernier message: 07/12/2005, 00h30
  4. [STL]Problème itérateur avec list
    Par Fiquet dans le forum SL & STL
    Réponses: 7
    Dernier message: 03/10/2005, 17h54

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