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 :

Alléger code python


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2021
    Messages : 2
    Par défaut Alléger code python
    Bonjour à tous,

    Je cherche à réduire le nombre de lignes de code avec une boucle for, pour définir la couleur de mes boutons Tkinter en fonction des valeurs d’une liste.

    J’ai 50 boutons nommés bouton1, bouton2 ….

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If liste[0] > 50 :
         Bouton0.configure(bg="yellow") 
    If liste[1] > 50 :
         Bouton1.configure(bg="yellow")
    Je pense que la solution est déjà résolue dans le forum, mais je ne trouve pas les mots clés pour la recherche.
    Merci par avance

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 746
    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 746
    Par défaut
    Salut,

    Déjà pour alléger, une liste de buttons permettrait d'accéder au bouton 0 via Buttons[0] etc... plutôt que de passer par un tas de variables globales. Après faut voir la correspondance entre liste[x] et buttons[y] et çà c'est pas dans votre code (sauf à imaginer que x = y)... Et une fois cela fait, on va peut être pouvoir faire une boucle.

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

  3. #3
    Membre Expert
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 923
    Billets dans le blog
    8
    Par défaut
    Bonjour,
    @sam: Regarde l'exemple ci-dessous t'inspire..: Enfin s'il correspond à ta demande (sinon il te faut nous la préciser)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    import tkinter as tk
    root = tk.Tk()
    l = [tk.Button(text=str(i), command=lambda i:print(i)) for i in range(4)]
    data=[56, 40, 30, 90]
    for index, nbr in enumerate(data):
        if nbr > 50:
            l[index].grid()
    root.mainloop()

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2021
    Messages : 2
    Par défaut Merci beaucoup, cela fonctionne
    Je ne savais pas que l’on pouvait utiliser []

  5. #5
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Salut,

    @Hominidé, j'ai testé ton code et j'ai une erreur* quand je clique sur un des boutons.

    * TypeError: <lambda>() missing 1 required positional argument: 'i'

    Bon on devine quand même ce que le code est censé faire...

  6. #6
    Membre Expert
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 923
    Billets dans le blog
    8
    Par défaut
    Citation Envoyé par Beginner. Voir le message
    Salut,

    @Hominidé, j'ai testé ton code et j'ai une erreur* quand je clique sur un des boutons.

    * TypeError: <lambda>() missing 1 required positional argument: 'i'

    Bon on devine quand même ce que le code est censé faire...
    Bonjour,
    ah oui, désolé. J'ai oublié d'assigner l'argument de ma lambda.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    command=lambda i=i: print(i)

  7. #7
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Ca marche. Merci.

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

Discussions similaires

  1. [Bouml]modifier le générateur de code python
    Par cedrix57 dans le forum BOUML
    Réponses: 4
    Dernier message: 16/03/2009, 22h12
  2. Réponses: 3
    Dernier message: 08/03/2009, 10h50
  3. conversion d'indentation dans un code python
    Par KINENVEU dans le forum Général Python
    Réponses: 2
    Dernier message: 26/02/2009, 04h04
  4. Réponses: 1
    Dernier message: 24/05/2008, 17h04
  5. [SWIG] dialogue entre code C et code python
    Par dmichel dans le forum Interfaçage autre langage
    Réponses: 12
    Dernier message: 19/12/2007, 21h19

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