EXPLICATION LIGNE DE CODE

Résolu/Fermé
Utilisateur anonyme - Modifié le 27 mai 2021 à 01:14
 Utilisateur anonyme - 27 mai 2021 à 13:59
Bonjour, j'aurais aimé que l'on puisse m'expliquer les lignes de code suivantes LIGNE PAR LIGNE (c'est très important) Merci beaucoup ! c'est un projet pour le lycée... mais je ne suis pas très forte... merci de votre aide !!!
from tkinter import*

def calcul_caracteres(texte):
    compteur=0
    for i in range(len(texte)):
        compteur+=1
    return compteur+1

fenetre=Tk()
texte_entree=Label(fenetre,text="entrez un texte")
texte_entree.grid(row=0,column=0)
entree=Entry(fenetre,width=50)
entree.grid(row=5,column=0)
texte_compteur=StringVar()
texte_compteur.set("0")
label_compteur=Label(fenetre,textvariable=texte_compteur)
label_compteur.grid(row=10,column=5)

def change_texte(texte):
    texte_compteur.set(str(calcul_caracteres(texte)))

bouton_compteur=Button(fenetre,text="calculer le nombre de caracteres",command=change_texte(entree.get()))
bouton_compteur.grid(row=5,column=5)
label_texte=Label(fenetre,text="Votre texte contient")
label_texte.grid(row=10,column=4)
label_texte2=Label(fenetre,text="caracteres")
label_texte2.grid(row=10,column=6)



fenetre.mainloop()


EDIT : Ajout des balises de code.

COMMENT UTILISER LES BALISES DE CODE

A voir également:

3 réponses

Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
Modifié le 27 mai 2021 à 11:03
Bonjour chlochlo,

Déjà, ce code ne fonctionne pas:

bouton_compteur=Button(fenetre,text="calculer le nombre de caracteres",command=change_texte(entree.get()))


On ne peut pas passer d'arguments à une fonction callback d'un widget
il faut passer par une fonction lambda

Une fois que c'est corrigé, ça fonctionne:



Ceci dit ca affiche 7 caractère au lieu de 6, car on ajoute 1 au compteur:

return compteur+1


Je ne sais pas pourquoi...
1
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
27 mai 2021 à 11:11
Apres, sur l'aspect présentation, c'est bien de mettre d'abord les définitions de fonctions puis
le programme principal : création de la fenêtre et des widgets:
# -*- coding:Latin-1 -*-

from tkinter import*

def calcul_caracteres(texte):
    compteur=0
    for i in range(len(texte)): compteur+=1
    return compteur

def change_texte(texte):
    texte_compteur.set(str(calcul_caracteres(texte)))

fenetre=Tk()

texte_entree=Label(fenetre,text="entrez un texte")
texte_entree.grid(row=0,column=0)

entree=Entry(fenetre,width=50)
entree.grid(row=5,column=0)

texte_compteur=StringVar()
texte_compteur.set("0")

label_compteur=Label(fenetre,textvariable=texte_compteur)
label_compteur.grid(row=10,column=5)

bouton_compteur=Button(fenetre,text="calculer le nombre de caracteres",command=lambda:change_texte(entree.get()))
bouton_compteur.grid(row=5,column=5)

label_texte=Label(fenetre,text="Votre texte contient")
label_texte.grid(row=10,column=4)

label_texte2=Label(fenetre,text="caracteres")
label_texte2.grid(row=10,column=6)

fenetre.mainloop()
1
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
27 mai 2021 à 13:58
En fait, dans ma 2ème réponse, j'ai corrigé la ligne du bouton...
1
Utilisateur anonyme
27 mai 2021 à 13:59
oui excuse moi je n’avais pas reçu le deuxième message merci beaucoup !
0