Menu

Programmation/Tkinter

Messages postés
3
Date d'inscription
mercredi 10 avril 2019
Statut
Membre
Dernière intervention
10 avril 2019
- - Dernière réponse : quent217
Messages postés
271
Date d'inscription
vendredi 25 septembre 2015
Statut
Membre
Dernière intervention
20 avril 2019
- 10 avril 2019 à 22:59
Salut j'ai fait un programme python pour calculer si une année est bissextile ou non.
Mon programme marche en console. Mais maintenant j'essaye de lui donner une interface graphique avec la librairie Tkinter.
Mais quand j'appuie sur le bouton valider j'obtiens cette erreur.

File "C:/Users/yam89/Desktop/testg.py", line 36, in prog_bissextile
restepar4 = saisir % 4
TypeError: unsupported operand type(s) for %: 'StringVar' and 'int'

Voici mon programme:


La fenetre de mon programme:


Si il vous plait j'ai besoin d'aide
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
271
Date d'inscription
vendredi 25 septembre 2015
Statut
Membre
Dernière intervention
20 avril 2019
86
1
Merci
Bonjour,
Une StringVar est une variable Tkinter mais elle ne peut pas être utilisée directement dans des calculs. Pour récupérer sa valeur il faut utiliser
saisir.get()
. De plus, cette méthode retourne une chaine de caractère mais vous avez besoins d'un entier, il faut donc faire
int(saisir.get())
.

Dans vos prochains messages, veuillez copier-coller votre code plutôt que de partager une image car cela permet aux personnes qui souhaitent vous aider de pouvoir copier ce code à leur tour pour le tester.
Merci de votre compréhension.

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 40435 internautes nous ont dit merci ce mois-ci

yam89421
Messages postés
3
Date d'inscription
mercredi 10 avril 2019
Statut
Membre
Dernière intervention
10 avril 2019
-
Oui merci j'ai lu votre réponse et en effet cela marche maintenant merci beaucoup
mais maintenant quand je rentre un nombre à 3 chiffre cela marche il me dit si c'est bissextile, mais quand je met un nombre à 4 chiffre j'appuie sur le bouton valider et il ne se passe rien
quent217
Messages postés
271
Date d'inscription
vendredi 25 septembre 2015
Statut
Membre
Dernière intervention
20 avril 2019
86 -
Êtes-vous sûr d'avoir correctement fait vos tests ? Je ne pense pas que le problème soit lié au nombre de chiffres.
Je vous laisse essayer avec plusieurs valeurs différentes pour trouver d'où vient le problème.
Commenter la réponse de quent217
Messages postés
295
Date d'inscription
lundi 4 juillet 2016
Statut
Membre
Dernière intervention
10 avril 2019
24
0
Merci
Bonjour,
Je pense que ton problème vient du type de tes variables dans ton calcul.
TypeError: unsupported operand type(s) for %: 'StringVar' and 'int' 


Je m'explique, il semble que l'opérateur % rencontre un problème avec une string (une chaine) et puisque ton code resemble à ceci :
restepar4 = saisir % 4 

Et que nous savons que 4 est bien un int dans ce cas là, ce doit être la variable saisir à l'origine du problème. Tu devrais donc essayer ceci :
restepar4 = int(saisir) % 4 
yam89421
Messages postés
3
Date d'inscription
mercredi 10 avril 2019
Statut
Membre
Dernière intervention
10 avril 2019
-
Bonjour merci pour ta réponse, j'ai essayer ce que tu m'a dit et maintenant j'ai cette erreur

TypeError: int() argument must be a string, a bytes-like object or a number, not 'StringVar'

je pense que le problème vient de cette ligne

self.zdt = Entry(fenetre, textvariable=saisir, width=7)


mais je n'en suis pas sûr
quent217
Messages postés
271
Date d'inscription
vendredi 25 septembre 2015
Statut
Membre
Dernière intervention
20 avril 2019
86 > yam89421
Messages postés
3
Date d'inscription
mercredi 10 avril 2019
Statut
Membre
Dernière intervention
10 avril 2019
-
Avez-vous lu ma réponse juste en dessous ?
Commenter la réponse de tpez