Bonjour à tous.tes,
Comment fait-on pour ne récupérer qu'une seule des coordonnées d'un widget.
Doit-on l'extraire du "tulpe" (x1, y1, x2, y2) ?
Bonjour à tous.tes,
Comment fait-on pour ne récupérer qu'une seule des coordonnées d'un widget.
Doit-on l'extraire du "tulpe" (x1, y1, x2, y2) ?
Bonjour
Soit la fonction/méthode permet, via un paramètre particulier, de spécifier la valeur cherchée ; soit il existe une autre méthode avec un nom ressemblant à la première mais dédiée à cibler précisément la valeur cherchée (Qt est friand de ce genre de possibilités mais Tk connais pas) ; soit en dernier recours effectivement tu reçois un tuple/liste/dictionnaire contenant plein d'infos et à toi d'en extraire l'information précisément ciblée.
Mon Tutoriel sur la programmation «Python»
Mon Tutoriel sur la programmation «Shell»
Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
Et on poste ses codes entre balises [code] et [/code]
Je n'ai pas trouvé du coté méthode pour n'extraire qu'un seul paramètre, je vais donc bidouiller le "tulpe".
Merci pour ton retour.👍
C'est toujours un plaisir et ce n'est pas de la bidouille.
Ce terme péjoratif fait référence à une action compliquée pour obtenir un résultat considéré par ailleurs comme assez simple. Par exemple pour avoir la somme de 1 à n on peut faire une boucle et additionner (ça c'est de la bidouille) ou utiliser la formule générale de la somme d'une suite arithmétique qui, dans ce cas, s'écrit.
Ou pour faire avancer un serpent d'une case on peut déplacer chaque anneau de la tête à la queue (ça c'est de la bidouille) ou déplacer le dernier anneau sur la case de destination (sais pas pourquoi je prends cet exemple précis moi)
Exemple: ce code, trouvé dans le forum et qui permet de récupérer le mois en français et l'année courante en passant par 4 variables plus une liste qui ne sera jamais modifiée, c'est de la bidouille
Code python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 from datetime import datetime current_datetime = datetime.now() current_date = current_datetime.strftime("%B%Y") #print(current_date) Mois=['Jjanvier','février','mars','avril','mai','juin','juillet','aout','septembre','octobre','novembre','décembre'] mois = current_datetime.date().month #print(Mois[mois]) Q = Mois[mois-1] #print(Q) current_date = Q + current_datetime.strftime("%Y")
Un code qui produit le même résultat
Juste 2 variables (une pour mémoriser le travail intermédiaire et l'autre pour récupérer le travail final). Et la liste est devenue tuple.
Code python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 from datetime import date mois=( 'janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'aout', 'septembre', 'octobre', 'novembre', 'décembre', ) today = date.today() current_date = "%s%s" % ( mois[today.month - 1], today.strftime("%Y"), )
Un tuple, qui correspond à une liste non modifiable (perso dans mon cours je préfère parler du tuple en premier et ensuite rajouter la liste comme étant un tuple modifiable) offre toutes les possibilités d'accès à ses éléments internes et cet accès est parfaitement légitime. Donc ce n'est pas de la bidouille.
Et Python te rajoute même des possibilités plutôt sympa pour rendre ton code encore plus explicite
Pas super parlant (que représente l'élément [3] ? x1, x2, y1, y2 ???)
Code python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 >>> data=(1, 2, 3, 4) >>> data[0] 1 >>> data[3] 4
Et maintenant...
Code python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 >>> data=(1, 2, 3, 4) >>> data=dict(zip(("x1", "y1", "x2", "y2"), data)) >>> data {'x1': 1, 'y1': 2, 'x2': 3, 'y2': 4} >>> data["x1"] 1 >>> data["y2"] 4
Mon Tutoriel sur la programmation «Python»
Mon Tutoriel sur la programmation «Shell»
Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
Et on poste ses codes entre balises [code] et [/code]
Tout à fait.
Si canvas.bbox(iid) retourne le tuple (x1, y1, x2, y2) et que je n'ai envie que de x1 et x2, on peut les extraire via:
x1, _, x2, _ = canvas.bbox(iid). Le '_' servant à nommer les valeurs à ignorer.
Maintenant, si je veux récupérer un item à une position donnée comme par exemple y1 on pourra écrire: canvas.bbox(iid)[1].
On ne peut utiliser que les interfaces qui existent... sachant que rien n'empêche d'y ajouter sa cuisine par dessus pour récupérer ce qu'on veut plus simplement.
- W
J'utilise ce therme depuis des années, sans jamais en avoir vérifié la signification exacte, je l'ai probablement rencontré lors d'un échange professionnelle sympathique.
Mais je constate malheureusement qu'il correspond (pour le moment) parfaitement à ma façon de résoudre les exercices.
Merci Sve@r pour ce retour très pédagogique sur les dictionnaires.
Génial 👌
Impatient de tester également cette façon de faire.
Partager