Partie Programmation : PYTHON
Plan du cours
➢ Introduction à Python
➢ Installation Python et Jupyter
➢ Découverte Python (Premiers pas)
➢ Listes 1D et 2D
➢ Tuples / Dictionnaires
➢ Fonctions
➢ Modules et importations sur Python
➢ Interfaces graphiques sur Python
1. Introduction à Python :
▪ Python est un langage puissant, à la fois facile à apprendre et riche en possibilités.
Dès l'instant où vous l'installez sur votre ordinateur, vous disposez de nombreuses fonctionnalités
intégrées au langage que nous allons découvrir tout au long de ce cours.
• Python est un langage multiplateforme
• Python est gratuit, sous licence libre.
A. Que peut-on faire avec Python ?
‣ Du calcul scientifique (librairie NumPy)
‣ Des graphiques (librairie matplotlib)
‣ Du traitement du son, de la synthèse vocale (librairie eSpeak)
‣ Du traitement d'image (librairie PIL), de la vision artificielle par caméra (framework SimpleCV)
‣ De la bio-informatique (librairie Biopython)
‣ Des applications avec interface graphique GUI (librairies Tkinter, PyQt, wxPython, PyGTK...)
‣ Des jeux vidéo en 2D (librairie Pygame)
B. Top IDE pour les développeurs Python
IDLE propose un certain nombre d'outils :
o un éditeur de texte (pour écrire le programme)
o un interpréteur (pour exécuter le programme)
o un débogueur (pour tester le programme)
PROFESSEUR CHARIF OTHMANE 18
C. Versions de langage Python
❑ Python 2.0
‣ Décembre 2000 ~ the present Python 2.7
‣ Syntax : Exemple fonction print : print "bonjour“
❑ Python 3.0
‣ Décembre 2008 ~ the present Python 3.8
‣ Syntax : Exemple fonction print : print
("bonjour“)
‣ Plus de bibliothèques.
D. Installation Python et Anaconda
a. Installation simple de Python
Mode Interactif Mode Batch ou script
b. Jupyter/Python
Pour exécuter le contenu de cette cellule, vous avez plusieurs possibilités :
• Cliquer sur le menu Cell, puis Run Cells.
• Cliquer sur le bouton Run (sous la barre de menu).
• Presser simultanément les touches Ctrl + Entrée.
Pour créer une nouvelle cellule, vous avez, ici encore, plusieurs possibilités :
• Cliquer sur l’icône + sous la barre de menu.
• Cliquer sur le menu Insert, puis Insert Cell Below.
• Une nouvelle cellule vide devrait apparaître.
PROFESSEUR CHARIF OTHMANE 19
2. Les types de variables en python
Convention de nommage :
• Commencer par une lettre ou un underscore.
• Elle doit ne pas contenir de caractères spéciaux.
• Elle ne doit pas contenir d'espaces.
• On peut utiliser des underscores (_).
• Il est encouragé d’utiliser des noms qui puissent directement commenter votre
code.
• Il faut absolument éviter d’utiliser un mot « réservé » par Python
False Class finally is return
None continue for lambda try
True def from nonlocal while
and del global not with
as elif if or yield
assert else import pass
break except in raise
Le type d’une variable correspond à la nature de celle-ci :
Entier numérique (int).
Nombre flottant (float).
Chaîne de caractères (str).
Booléen (bool).
Listes.
Dictionnaires.
Tuples.
Saisir la commande type(_)
Prédire le résultat :
▪ Opérations
Essayez de prédire le résultat de chacune des instructions suivantes, puis vérifiez-le dans l’interpréteur Python :
>> (1+2)**3 >> ("Da"*4) / 2
>> "Da" * 4 >> 5 / 2
>> "Da" + 3 >> 5 // 2
>> ("Pa"+"La") * 2 >> 5 % 2
▪ Conversion de type (cast)
Essayez de prédire le résultat de chacune des instructions suivantes, puis vérifiez-le dans l’interpréteur Python :
>> str(4) * int("3")
>> int("3") + float("3.2")
>> str(3) * float("3.2")
>> str(3/4) * 2
PROFESSEUR CHARIF OTHMANE 20
A. Exercices et Challenges :
Exercice 1 :
Écrire un programme qui permet de lire un nombre entier de
secondes au clavier, et l’exprimer sous forme d’heures, minutes
et seconde en utilisant trois variables : S, M, H.
Exercice 2 :
* Afficher la valeur 100 de la somme de la lettre "50" et le nombre 50, puis afficher la valeur suivante "5050"
*Avec les lettres "1" et "0" afficher le nombre 1000.
* Calculer 5!
3. Sélection ou exécution conditionnelle
La plus simple de ces instructions conditionnelles est l’instruction if. Pour expérimenter son fonctionnement,
veuillez entrer dans votre éditeur Python les deux lignes suivantes :
A. Opérateurs de comparaison
La condition évaluée après l’instruction if peut contenir les opérateurs de comparaison suivants :
x == y # x est égal à y >>> a = 7
x != y # x est différent de y >>> if (a % 2 == 0):
x>y # x est plus grand que y ... print("a est pair")
x<y # x est plus petit que y ... print("parce que le reste de sa division par
2 est nul")
x >= y # x est plus grand que, ou égal à y ... else:
x <= y # x est plus petit que, ou égal à ... print("a est impair")
PROFESSEUR CHARIF OTHMANE 21
B. Instructions imbriquées
Il est parfaitement possible d’imbriquer les unes dans les autres plusieurs instructions composées, de manière à
réaliser des structures de décision complexes. Exemple :
C. Exercices et Challenges
Exercice 1 :
Écrire un programme qui simule le fonctionnement d’une
calculatrice : il demande à l’utilisateur de saisir deux
nombres et un opérateur arithmétique ( + , -, * , / ) et affiche
le résultat correspondant.
Exercice 2 :
Écrire un programme qui lit la moyenne d’un étudiant et
affiche la mention correspondante. La mention est définie
comme suit :
Exercice 3 :
Écrire un programme permettant de résoudre l’équation 𝒂 𝒙𝟐 + 𝒃𝒙 + 𝒄 = 𝟎 en fonction des valeurs de a,b et c.
PROFESSEUR CHARIF OTHMANE 22
4.Répétitions en boucle – l’instruction while
Il est parfaitement possible d’imbriquer les unes dans les autres plusieurs instructions composées, de manière à
réaliser des structures de décision complexes. Exemple :
A. Exercices et Challenges
Écrire un script qui permet de lire un entier N et calcule la somme des entiers impairs inférieurs à N.
B. Répétitions en boucle – l’instruction for
Exercice1 :
Ecrire l'algorithme permettant d’afficher le triangle suivant, le nombre de lignes étant donné par
l'utilisateur :
Exercice 2 :
Écrire le programme suivant :
1 - La moyenne de n notes entre 1 et 20.
2 - La saisie du nombre 0 permet d'arrêter la saisie des notes d'où la détermination de n.
3 - Faites un affichage des messages selon un seuil choisi (Ex : Si la moyenne es supérieure à 12, on
affiche Validé)
4 - Trouver la note maximale et minimales
5. Les séquences :
❑ D’abord c’est quoi une séquence ??
‣ Une séquence est un ensemble fini d'éléments indicés de 0 à n-1 (si cette séquence comporte n
éléments).
Exemples de séquence :
o Les listes
o Les tuples
o Les
chaines de
caractères
‣ Longueur : len(ch)
‣ Sélection de l'élément : ch[1]
PROFESSEUR CHARIF OTHMANE 23
‣ Les objets placés dans une liste sont accessibles par l'intermédiaire d'un index (un nombre qui
indique l'emplacement de l'objet dans la séquence).
‣ La numérotation des index commence par 0.
A. Les listes 1D
❑ Définition- Listes
‣ Une liste est une structure de données qui contient une
série de valeurs.
‣ Python autorise la construction de liste contenant des
valeurs de type différent (par exemple entier et chaîne de
caractères).
‣ Une liste est déclarée par une série de valeurs séparées
par des virgules, et le tout encadré par des crochets.
❑ Accéder aux éléments d'une liste
PROFESSEUR CHARIF OTHMANE 24
❑ Modifier une liste
# Supprime l’élément à l’indice et le retourne
❑ Suppression / remplacement d'éléments
PROFESSEUR CHARIF OTHMANE 25
❑ Les listes (première approche)
Il est possible de changer les
éléments individuels d’une liste :
On peut donc remplacer certains éléments d’une liste par d’autres, comme ci-dessous :
❑ Test d'appartenance / Copie superficielle d'une liste
PROFESSEUR CHARIF OTHMANE 26
B. Liste 2D
❑ Exercices et Challenges
Exercice 1
Écrire un programme qui permet de saisir un entier N de trois chiffres non nuls, de déterminer et d’afficher tous
les nombres qui peuvent êtres formés par les chiffres de N Afficher ensuite leur somme et leur produit
Exemple : si N=135 : Les nombres formés par les chiffres N sont : 135, 153, 513, 531, 315 ,351
Exercice 2
Ecrire un algorithme qui permet de déterminer la somme des chiffres d’un nombre entier donné (Exemple :
pour N=123465, on aura 1+2+3+4+6+5=21)
C. Les Tuples
Python propose un type de données appelé tuple, qui est assez semblable à une liste mais qui n'est pas
modifiable (immutables).
Les opérations qu’on peut faire sur un Tuple sont
identiques à ce que l’on effectue sur les listes excepté
qu’un Tuple n’est pas modifiable
PROFESSEUR CHARIF OTHMANE 27
D. Dictionnaires
‣ Les dictionnaires sont un type composite, semblables aux listes dans une certaine mesure (ils sont
modifiables comme elles), mais ce ne sont pas des séquences.
‣ Un dictionnaire est composé de paires (clé, valeur)
‣ Une clé pourra être :
❑ Alphabétique
❑ Numérique
❑ Un type composite
‣ Les valeurs associées à ces clés peuvent êtres de n’importe quel type
❑ Création d'un dictionnaire
❑ Les méthodes spécifiques aux dictionnaires
❑
❑
❑
❑
PROFESSEUR CHARIF OTHMANE 28
❑ Parcours d'un dictionnaire
❑ Exercices et Challenges
Exercice 1 :
Écrire un programme qui demande à l’utilisateur de saisir un texte, ensuite il affiche le nombre d’occurrence de
chaque caractère dans le texte, par exemple :
Exercice 2 :
* Demander à l’utilisateur le nombre des étudiants
* Créer une liste pour calculer les notes d'un élève :
- la première position de la liste est réservé au nom et prénom d'étudiant (tuple).
- de la position 1 jusqu'à l'avant dernière position pour les notes des matières, les notes sont comprises
entre 0 et 20.
- la dernière position est réservé aux remarques du professeur.
* créer une tuple pour les coefficients des matières.
* calculer la moyenne des notes et l'ajouter après la dernière position (après la position des remarques)
de la première liste).
* trouver les valeurs maximale et minimale des notes.
* Créer un dictionnaire avec CNE comme clé pour qu’il contient les listes des étudiants.
PROFESSEUR CHARIF OTHMANE 29
6. Fonction/Procédure
➢ Fonction : Bloc d’instructions nommé et paramétrées réalisant une certaine tâche. Elle admet zéro, un ou
plusieurs paramètres et renvoie toujours un résultat.
➢ Procédure : bloc d’instructions nommé et paramétrées réalisant une certaine tâche . Elle admet zéro, un ou
plusieurs paramètres mais ne retourne pas de valeur.
❑ Pourquoi des fonctions ?
❖ Réutiliser un bloc d’instructions
❖ Regroupement de blocs de code souvent répétés
❖ Éventuellement dans un module séparé, et réutilisable dans différents programmes
❖ Découper un problème en sous-tâches
❖ Code plus facile à tester isolément
❖ Programme plus simple à comprendre, une fonction étant identifiée pour réaliser une tâche particulière
❑ Syntaxe de déclaration
‣ Pour la déclaration d’une procédure
‣ Pour la déclaration d’une fonction
❑ Exemple d’une procédure
PROFESSEUR CHARIF OTHMANE 30
❑ Où est ce qu’on écrit les fonctions et les procédures
‣ Cas 1 : dans le même fichier que le programme principal
‣ Cas 2 : dans un fichier séparé
❑ Fichier : [Link]
❑ Fichier : [Link]
❑ Variables locales et variables Globales
❑ Les variables locales sont définies à l'intérieur du corps d'une fonction, ces variables ne sont
accessibles qu'à la fonction elle-même.
❑ Les variables définies à l'extérieur d'une fonction sont des variables globales. Leur contenu est «
visible » de l'intérieur d'une fonction, mais la fonction ne peut
def mask(): pas le modifier.
p = 20 def mask():
print(p, q) global p
+++++++++++++++++++++ p = 20
Comment définir une print(p, q)
p,q = 15, 38
variable globale à +++++++++++++++++++++
mask()
p,q = 15, 38
20 38 l’intérieur d’une mask()
print(p, q) fonction 20 38
15 38 print(p, q)
20 38
PROFESSEUR CHARIF OTHMANE 31
❑ Valeur par défaut pour les paramètres
Dans la définition d’une fonction, il est possible (et souvent souhaitable) de définir un argument par défaut pour
chacun des paramètres
❑ Exercice
Créer une fonction pour calculer la surface et périmètre d'un cercle en utilisant un retour multiple.
7. Module et importation sur Python
A. Modules classiques sur Python et modules personnalisés
‣ On appelle “module” tout fichier constitué de code Python (c’est-à-dire tout fichier avec l’extension .py)
importé dans un autre fichier ou
script.
‣ En Python, on peut distinguer
deux grandes catégories de
module en les classant selon
leur éditeur :
‣ Les modules (Bibliothèques)
standards qui ne font pas partie
du langage en soi mais sont
intégrés automatiquement par
Python.
‣ Les modules externes.
‣ Les modules standards qui ne
font pas partie du langage en soi
mais sont intégrés
automatiquement par Python ;
‣ Les modules personnalisés :les modules développés par des développeurs externes qu’on va pouvoir
utiliser ;
‣ Les modules qu’on va développer nous-mêmes.
‣ Pour installer les modules qui ne sont pas intégrés de base à Python, il faut commencer pour ouvrir votre
console. Attention, nous ne parlons pas ici de la console Python mais bien de celle de votre système lui-
même.
‣ Pour installer un module, il suffit maintenant d'utiliser :
pip install nom_du_module
PROFESSEUR CHARIF OTHMANE 32
8. Les interfaces graphiques
Les bases de Tkinter
Créer une interface graphique avec Tkinter et Python 3
I-Introduction
Tkinter est une boite à outils pour faire des interfaces graphiques en Python. Elle repose sur un autre
langage de script, le Tcl (Tool Command Language) en utilisant la bibliothèque Tk de ce langage.
Tkinter est l'abréviation de « Tk interface ». Tkinter s'installe sous Windows avec la ligne de
commande suivante :
pip install Tk
II-Concepts de base
Le fonctionnement est le suivant : on dispose de plusieurs éléments graphiques appelés « widgets »,
certains widgets sont destinés à en contenir d'autres, c'est notamment le cas des fenêtres. La règle
étant que tout widget doit être contenu dans un autre, excepté un widget spécial, qui est la fenêtre
racine.
Pour créer une interface graphique avec Tkinter, il y a deux choses à faire : créer une fenêtre racine
et lancer la boucle principale via la méthode mainloop(). L'appel à cette méthode bloque l'exécution
de l'appelant. Tkinter est alors à l'écoute des événements provenant de l'utilisateur, tels que des clics
de souris.
[Link] tkinter import *
[Link] = Tk() #Création de la fenêtre racine
[Link]()#Lancement de la boucle principale
Une fenêtre avec le titre « tk » s'affiche.
Lorsqu'on ajoute des widgets, il faut d'abord créer le widget, puis le
positionner en utilisant un gestionnaire de position.
Tous (presque tous) les widgets prennent en premier paramètre le widget
dans lequel ils seront contenus.
Les widgets ont en commun de nombreux attributs, que l'on pourra paramétrer comme ceci lors de
leur construction :
1.un_widget = UnWidget(widget_parent,un_parametre='une_valeur')
On peut également paramétrer un widget après sa création en utilisant la méthode configure() ou son alias config() :
1.un_widget.config(un_parametre='une_valeur')
Une autre façon pour lire ou changer l'attribut d'un widget est d'utiliser :
1.un_widget['un_parametre'] # accéder à un attribut
2.un_widget['un_parametre'] = 'une_valeur'#Modifier un attribut.
PROFESSEUR CHARIF OTHMANE 33
Ainsi pour créer un Label avec le texte « Hello », on va faire ceci :
1. from tkinter import *
2. root = Tk() # Création de la fenêtre racine
3. label = Label(root, text='Hello')
4. [Link]() # Lancement de la boucle
principale
Lorsqu'on exécute notre code, notre label ne s'affiche pas, comme indiqué
au début de ce chapitre, il faut positionner notre label après l'avoir créé.
Pour positionner un widget, Tkinter propose trois gestionnaires de position.
Chacun permet de placer les widgets avec une philosophie différente.
Pour positionner un widget, Tkinter propose trois gestionnaires de position.
Chacun permet de placer les widgets avec une philosophie différente.
Gestionnaire de Description
position
pack Le conteneur est coupé en deux zones. L'une de ces zones sera la zone
occupée par le widget et l'autre la zone libre. La zone libre sera de
nouveau coupée en deux au positionnement du prochain widget.
grid Positionne le widget au pixel près. Ce gestionnaire est difficile à utiliser
dans la pratique.
place Découpe le conteneur en grille et place le widget dans une cellule de
cette grille.
III-Les widgets disponibles dans Tkinter
Tkinter propose une dizaine de widgets, ceux-ci peuvent prendre en paramètre les options suivantes
Options standard Description
foreground La couleur du texte du widget
activeforeground La couleur du texte lorsque le curseur est
sur le widget.
background Couleur de fond.
activebackground Couleur de fond lorsque le curseur est sur le widget (valable uniquement
pour les widgets cliquables).
padx Marge horizontale entre les bords du widget et son contenu.
pady Marge verticale entre les bords du widget et son contenu.
width Largeur du widget en taille de police.
height Hauteur du widget en taille de police.
III-A - Le Label
Comme vu dans l'introduction, il sert à afficher du texte, voici comment faire un
label qui affiche « Ceci est un Label » :
1. label = Label(widget_parent, text='Ceci est un Label')
Comme la majorité des widgets, on peut changer sa couleur en utilisant les options standards
foreground et
background, ou lui ajouter des marges avec padx et pady.
PROFESSEUR CHARIF OTHMANE 34
1. from tkinter import *
2. root = Tk()
3. label = Label(root, text="Hello", foreground="#892222",
4. background="#FFAAAA", padx="10", pady="4")
5. [Link]()
6. [Link]()
7. [Link]()
III-B - Les Boutons (Button)
Le widget Button est utilisé pour ajouter des boutons dans une application
Python. Ces boutons peuvent afficher du texte ou des images qui traduisent
leur fonction. Vous pouvez attacher une fonction ou une méthode à un bouton
qui est appelé automatiquement lorsque vous cliquez sur le bouton.
btn = Button ( master, option = value, ... )
III-C - Les champs de saisie (Entry)
Ce widget sert à recueillir la saisie d'un utilisateur. Il prend en paramètre un objet de type StringVar
qui va servir à récupérer le texte de la saisie.
[Link] tkinter import *
[Link] update_label(label, stringvar):
8. text = [Link]()
9. [Link](text=text)
10. [Link]('merci')
12. root = Tk()
13. text = StringVar(root)
14. label = Label(root, text='')
15. entry_name = Entry(root, textvariable=text)
16. button = Button(root, text='clic',
17. command=update_label)
19. [Link](column=0, row=0)
20. entry_name.grid(column=0, row=1)
21. [Link](column=0, row=2)
23. [Link]()
III-D - Les widgets checkbutton
Les widgets de type Checkbutton sont des cases que coche l'utilisateur.
Pour connaître et modifier l'état du Checkbutton on utilise un objet
BooleanVar. Cet objet est semblable à l'objet StringVar utilisé pour le
widget Entry. Tout comme les Button, les Checkbutton peuvent
également prendre une fonction à exécuter via le paramètre command. La
fonction est exécutée dès que la case est cochée ou décochée.
from tkinter import *
gui = Tk()
c1 = Checkbutton(gui, text = "Python", height = 2,
width = 10)
c2 = Checkbutton(gui, text = "Java", height = 2, width = 10)
c3 = Checkbutton(gui, text = "PHP", height = 2, width = 10)
[Link]()
PROFESSEUR CHARIF OTHMANE 35
[Link]()
[Link]()
[Link]()
III-E - Les widgets Radiobutton
Ils sont utilisés pour proposer plusieurs choix parmi lesquels l'utilisateur en choisira un seul.
Comme les Checkbutton, ils ont un paramètre command et un paramètre variable, mais il faudra
utiliser le paramètre value pour spécifier la valeur à mettre dans la variable.
Dans l'exemple ci-dessous, on va créer trois Radiobutton à partir d'une liste de couleurs, en fonction
du bouton radiocoché, la couleur du texte d'un label change.
from tkinter import *
def sel():
selected = "Vous avez sélectionné : " + [Link]()
[Link](text = selected)
gui = Tk()
v = StringVar()
[Link]("Python") # initialiser
r1 = Radiobutton(gui, text="Python", variable=v, value="Python",
command=sel)
[Link](anchor = W)
r2 = Radiobutton(gui, text="Java", variable=v, value="Java",
command=sel)
[Link](anchor = W)
r3 = Radiobutton(gui, text="PHP", variable=v, value="PHP",
command=sel)
[Link](anchor = W)
label = Label(gui)
[Link]()
[Link]()
III-F - La Spinbox
C'est un champ avec deux petits boutons pour faire défiler les différentes valeurs proposées. Elle
s'utilise avec des nombres. On définit la plus petite valeur avec le paramètre from_ et la plus grande
valeur avec le paramètre to. On peut également spécifier le pas avec lequel la valeur sera
incrémentée ou décrémentée. Comme ce widget hérite d'Entry, vous pouvez lui spécifier une
variable via le paramètre textvariable.
La Spinbox peut également prendre une fonction à exécuter à chaque clic sur les boutons via le
paramètre command.
from tkinter import *
gui = Tk()
sp = Spinbox(gui, from_=0, to=15)
[Link]()
[Link]()
III-G – Les ComboBox
Une combobox dans Tkinter est un widget qui permet à l'utilisateur de choisir une
option parmi plusieurs options prédéfinies dans une liste déroulante. C'est un moyen
PROFESSEUR CHARIF OTHMANE 36
pratique de fournir une interface utilisateur pour la sélection d'une valeur parmi
plusieurs choix.
• Widget de sélection : La combobox est utilisée pour la sélection d'une seule option parmi
plusieurs, offrant à l'utilisateur une liste déroulante contenant les options disponibles.
• Liste d'options : La liste des options est définie au moment de la création de la combobox. Ces
options peuvent être des chaînes de caractères, des nombres, ou même des objets plus
complexes selon les besoins de l'application.
• Sélection de la valeur : Lorsque l'utilisateur sélectionne une option dans la combobox, la valeur
correspondante est affichée dans la zone de texte de la combobox. Cette valeur peut être
récupérée en tant que chaîne de caractères
ou en utilisant une variable de type
StringVar() liée à la combobox.
• Interaction utilisateur : En cliquant sur la
flèche à droite de la combobox, l'utilisateur
peut faire apparaître la liste déroulante
contenant les options. Il peut ensuite
sélectionner l'option désirée en cliquant
dessus.
• Événements : Vous pouvez attacher des
fonctions à des événements tels que la sélection d'une option dans la combobox en utilisant la
méthode bind().
import tkinter as tk
from tkinter import ttk
# Création de la fenêtre principale
fenetre = [Link]()
[Link]("Exemple de ComboBox")
# Fonction à appeler lorsque la sélection de la combobox change
def selection_changee(event):
valeur_selectionnee = [Link]()
print("La valeur sélectionnée est:", valeur_selectionnee)
# Création de la combobox
valeurs = ["Option 1", "Option 2", "Option 3"]
valeur_selectionnee = [Link]()
combobox = [Link](fenetre, values=valeurs,
textvariable=valeur_selectionnee)
[Link]("<<ComboboxSelected>>", selection_changee) # Liaison
de la fonction à l'événement de sélection
[Link](pady=10)
# Boucle principale
PROFESSEUR CHARIF OTHMANE 37
[Link]()
la méthode BIND
La méthode bind() en Python est utilisée pour lier une fonction (ou une méthode) à un événement
spécifique qui se produit dans une interface graphique ou dans d'autres applications interactives. Cela
permet d'associer une action à un événement particulier.
Voici la syntaxe générale de la méthode bind() :
[Link]("<événement>", fonction)
Dans cette syntaxe :
• widget est le widget auquel vous souhaitez lier l'événement.
• <événement> est le nom de l'événement que vous souhaitez capturer. Il peut s'agir d'un
événement de souris, d'un événement de clavier, ou d'autres événements spécifiques au
widget.
• fonction est la fonction ou la méthode que vous souhaitez exécuter lorsque l'événement se
produit. Cette fonction peut accepter un argument spécial, généralement appelé event, qui
contient des informations sur l'événement lui-même.
Dans Tkinter, vous pouvez utiliser la méthode bind() pour lier des fonctions à une variété
d'événements, tels que des événements de souris, de clavier, de fenêtre, et d'autres événements
spécifiques à certains widgets. Voici quelques-uns des événements les plus couramment utilisés
auxquels vous pouvez lier des fonctions :
Événements de souris :
• <Button-1> : Clic gauche de la souris.
• <Button-2> : Clic central de la souris (molette).
• <Button-3> : Clic droit de la souris.
• <Double-Button-1> : Double clic gauche de la souris.
• <B1-Motion> : Mouvement de la souris tout en maintenant le bouton gauche enfoncé.
Événements de clavier :
• <KeyPress> : Appui sur une touche du clavier.
• <KeyRelease> : Relâchement d'une touche du clavier.
Événements de fenêtre :
• <Configure> : Redimensionnement ou déplacement de la fenêtre.
• <FocusIn> : Lorsque la fenêtre obtient le focus.
• <FocusOut> : Lorsque la fenêtre perd le focus.
• <Destroy> : Lorsque la fenêtre est fermée.
Autres événements :
• <Enter> : Lorsque la souris entre dans la zone du widget.
• <Leave> : Lorsque la souris quitte la zone du widget.
• <Return> : Appui sur la touche "Entrée" (Return) du clavier.
• <Tab> : Appui sur la touche "Tab" du clavier.
Vous pouvez également lier des événements personnalisés à des widgets en utilisant la syntaxe
<CustomEvent>. Par exemple, vous pouvez définir un événement personnalisé <CustomEvent> et lier
une fonction à cet événement pour déclencher cette fonction lorsque vous le souhaitez dans votre
application.
PROFESSEUR CHARIF OTHMANE 38