Programmation DeskTop Avec Python
Programmation DeskTop Avec Python
Introduction
Voici les principaux types d'applications que l'on peut développer avec Python :
des jeux simples, des prototypes de jeux, des outils de développement de jeux,
etc.
3. Interprété : Python est un langage interprété, ce qui signifie que le code est
exécuté ligne par ligne par un interpréteur, ce qui facilite le développement itératif
et le débogage.
4. Typage dynamique : Python est dynamiquement typé, ce qui signifie que les
types des variables sont déterminés à l'exécution, offrant une grande flexibilité
mais nécessitant une attention particulière pour éviter les erreurs.
6. Large bibliothèque standard : Python offre une vaste bibliothèque standard qui
couvre une gamme étendue de fonctionnalités, permettant aux développeurs
d'accéder à des outils pour accomplir diverses tâches sans avoir à réinventer la
roue.
Installation de Python
Pour commencer à programmer en Python, vous devez installer Python sur votre
ordinateur. Vous pouvez le télécharger depuis le site officiel de Python
(https://www.python.org/) et suivre les instructions d'installation pour votre
système d'exploitation.
L'installation de PyCharm
Syntaxe de base
Python utilise une syntaxe claire et lisible qui ressemble à du pseudocode. Voici
un exemple simple d'un programme Python :
Les identificateurs sont des noms utilisés pour identifier des variables, des
fonctions, des classes, des modules ou d'autres objets. Les règles pour définir
des identificateurs en Python sont les suivantes :
1. Les lettres et les chiffres : Un identificateur doit commencer par une lettre (a-
z, A-Z) ou un underscore (_), suivi par des lettres, des chiffres ou des
underscores.
2. Pas de mots réservés : Les mots réservés (ou mots-clés) en Python ne peuvent
pas être utilisés comme identificateurs.
3. Sensibles à la casse : Python distingue les majuscules des minuscules, donc
`Variable` et `variable` sont différents.
Les mots réservés sont des mots qui ont une signification particulière pour le
compilateur Python et ne peuvent pas être utilisés comme noms d'identificateurs.
Ils sont toujours en minuscules.
Entrée (Input)
La fonction `input()` est utilisée pour lire une ligne de texte depuis l'entrée
standard (habituellement le clavier). Elle renvoie la chaîne de caractères entrée
par l'utilisateur.
Dans cet exemple, l'utilisateur est invité à entrer son nom, qui est ensuite affiché
avec un message de bienvenue.
Sortie (Output)
La fonction `print()` est utilisée pour afficher des messages ou des valeurs sur la
sortie standard (habituellement l'écran).
a=5
b = 10
print("La somme de", a, "et", b, "est", a + b)
Exemple Complet
# Appel de la fonction
afficher_message(nom_utilisateur, age_utilisateur)
En Python, les variables sont des conteneurs qui stockent des données. Vous
pouvez déclarer des variables et leur assigner des valeurs. Voici les principaux
types de données et des variables en Python, avec un exemple pour chaque cas :
1. Entiers (int) : Les entiers représentent des nombres entiers sans décimales.
FABOL |7
Exemple :
age = 25
Exemple :
prix = 19.99
Exemple :
nom = "Alice"
4. Booléens (bool) : Les booléens représentent les valeurs de vérité, soit True
(Vrai) soit False (Faux).
Exemple :
est_majeur = True
5. Listes (list) : Les listes sont des collections ordonnées et modifiables d'éléments
de différents types.
Exemple :
fruits = ["pomme", "banane", "orange"]
Exemple :
coordonnees = (10, 20)
Exemple :
etudiant = {"nom": "Alice", "age": 25, "classe": "Python"}
8. Ensembles (set) : Les ensembles sont des collections non ordonnées d'éléments
uniques.
Exemple :
FABOL |8
9. None : None est une valeur spéciale qui représente l'absence de valeur ou la
nullité.
Exemple :
adresse = None
Python offre une grande variété de types de données pour stocker et manipuler
différentes sortes d'informations. Chaque type de données a ses propres
caractéristiques et utilisation, ce qui permet une grande flexibilité dans le
développement d'applications Python.
Les opérateurs
Les opérateurs en Python sont des symboles spéciaux utilisés pour effectuer des
opérations sur des valeurs ou des variables. Voici les principaux types
d'opérateurs en Python, avec un exemple pour chaque cas :
Exemple :
a = 10
b=5
addition = a + b
soustraction = a - b
multiplication = a * b
division = a / b
L'opérateur modulo en Python, représenté par le symbole `%`, est utilisé pour
obtenir le reste de la division entière de deux nombres. Voici son fonctionnement
et un exemple d'utilisation :
Exemple :
resultat = 10 % 3
print(resultat) # Résultat : 1 (car 10 = 3 * 3 + 1)
FABOL |9
2. Utilisation dans les tests de parité : L'opérateur modulo est souvent utilisé pour
déterminer si un nombre est pair ou impair. Un nombre pair divisé par 2 donnera
un reste de 0, tandis qu'un nombre impair donnera un reste de 1.
Exemple :
nombre = 7
if nombre % 2 == 0:
print("Le nombre est pair")
else:
print("Le nombre est impair")
3. Utilisation dans les boucles et les séquences : L'opérateur modulo peut être
utilisé pour créer des boucles ou des séquences répétitives avec une certaine
périodicité.
Exemple :
for i in range(10):
if i % 2 == 0:
print("Nombre pair :", i)
else:
print("Nombre impair :", i)
4. Utilisation pour calculer les indices cycliques : L'opérateur modulo est utile
pour parcourir cycliquement une liste ou un tableau en boucle.
Exemple :
jours = ["Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi",
"Dimanche"]
indice = 8
jour = jours[indice % len(jours)]
print(jour) # Résultat : Mercredi (car 8 % 7 = 1)
L'opérateur modulo en Python est un outil puissant pour effectuer des opérations
basées sur les restes de divisions entières. Il est largement utilisé dans divers
contextes, notamment pour tester la parité, créer des boucles cycliques et calculer
des indices répétitifs.
2. Opérateurs d'affectation : Ils sont utilisés pour attribuer des valeurs à des
variables.
Exemple :
x = 10
F A B O L | 10
y=5
Exemple :
a = 10
b=5
egal = a == b
superieur = a > b
inferieur_ou_egal = a <= b
Exemple :
x = True
y = False
et_logique = x and y
ou_logique = x or y
non_logique = not x
5. Opérateurs d'appartenance : Ils sont utilisés pour vérifier si une valeur est
présente dans une séquence.
Exemple :
liste = [1, 2, 3, 4, 5]
est_present = 3 in liste
n_est_pas_present = 6 not in liste
6. Opérateurs d'identité : Ils sont utilisés pour comparer l'identité d'objets (leur
emplacement mémoire).
Exemple :
x = [1, 2, 3]
y = [1, 2, 3]
sont_identiques = x is y
ne_sont_pas_identiques = x is not y
F A B O L | 11
Structures de contrôle
Exemple :
note = 75
if note >= 90:
print("A")
elif note >= 80:
print("B")
elif note >= 70:
print("C")
else:
print("D")
2. Boucles while : Exécute un bloc de code tant qu'une condition donnée est vraie.
Exemple :
count = 0
while count < 5:
print(count)
count += 1
3. Boucles for : Parcourt un ensemble d'éléments, comme une liste ou une plage
de nombres.
Exemple :
fruits = ["pomme", "banane", "orange"]
for fruit in fruits:
print(fruit)
Exemple :
for i in range(10):
if i == 3:
continue
if i == 7:
break
print(i)
5. Instructions pass : Ne fait rien et est souvent utilisé comme espace réservé pour
une fonctionnalité future ou pour éviter une erreur de syntaxe.
Exemple :
if True:
pass
Exemple :
try:
resultat = 10 / 0
except ZeroDivisionError:
print("Division par zéro!")
Fonctions
Les fonctions en Python sont des blocs de code réutilisables qui effectuent une
tâche spécifique. Voici les aspects clés des fonctions, avec un exemple pour
chaque cas :
1. Définition de fonction : Pour définir une fonction, utilisez le mot-clé `def`, suivi
du nom de la fonction et des parenthèses contenant les paramètres, le cas échéant.
Exemple :
def saluer(nom):
print("Bonjour,", nom)
F A B O L | 13
saluer("Alice")
2. Paramètres et arguments : Les paramètres sont des valeurs que vous passez à
une fonction lors de son appel. Les arguments sont les valeurs réelles passées à la
fonction.
Exemple :
def multiplier(x, y):
return x * y
resultat = multiplier(3, 5)
3. Valeurs de retour : Les fonctions peuvent renvoyer des valeurs à l'aide du mot-
clé `return`.
Exemple :
def multiplier(x, y):
return x * y
resultat = multiplier(3, 5)
4. Fonctions avec des valeurs par défaut : Vous pouvez attribuer des valeurs par
défaut aux paramètres d'une fonction.
Exemple :
def saluer(nom="Anonyme"):
print("Bonjour,", nom)
saluer()
Exemple :
def fibonacci(n):
if n <= 1:
return n
else:
return fibonacci(n-1) + fibonacci(n-2)
print(fibonacci(5))
F A B O L | 14
6. Portée des variables : Les variables définies à l'intérieur d'une fonction sont
locales à cette fonction, sauf si elles sont explicitement déclarées comme globales.
Exemple :
def ma_fonction():
x = 10
print(x)
ma_fonction()
Exemple :
carre = lambda x: x ** 2
print(carre(5))
Les tableaux
En Python, les tableaux sont couramment représentés sous forme de listes, qui
sont des structures de données flexibles et polyvalentes. Voici un résumé des
principaux aspects des tableaux en Python, avec un exemple pour chaque cas :
1. Création de listes : Les listes peuvent être créées en énumérant leurs éléments
entre crochets `[ ]`.
Exemple :
liste = [1, 2, 3, 4, 5]
2. Accès aux éléments : Les éléments d'une liste peuvent être accédés par leur
indice, en utilisant l'opérateur d'indexation `[ ]`.
Exemple :
premier_element = liste[0]
deuxieme_element = liste[1]
Exemple :
liste[2] = 10
Exemple :
liste.append(6)
liste.insert(2, 7)
Exemple :
liste.remove(4)
del liste[1]
Exemple :
longueur = len(liste)
7. Parcours de la liste : Les éléments d'une liste peuvent être parcourus à l'aide de
boucles `for` ou `while`.
Exemple :
for element in liste:
print(element)
Exemple :
carres = [x**2 for x in range(1, 6)]
1. Classe : Une classe est un modèle qui définit les attributs et les comportements
d'un objet. Elle sert de plan pour créer des instances d'objets.
Exemple :
class Personne:
def __init__(self, nom, age):
self.nom = nom
self.age = age
def afficher_info(self):
print(f"Nom : {self.nom}, Age : {self.age}")
2. Objet : Un objet est une instance d'une classe. Il possède des attributs (variables)
et des méthodes (fonctions) définis par la classe.
Exemple :
# Utilisation des attributs et des méthodes de l'objet personne1
print(personne1.nom) # Affiche : Alice
print(personne1.age) # Affiche : 30
personne1.afficher_info() # Affiche : Nom : Alice, Age : 30
Exemple :
class CompteBancaire:
def __init__(self, solde):
self.__solde = solde # Attribut privé
def afficher_solde(self):
print(f"Solde : {self.__solde}")
F A B O L | 17
compte1 = CompteBancaire(1000)
compte1.afficher_solde() # Affiche : Solde : 1000
# Erreur : AttributeError: 'CompteBancaire' object has no attribute 'solde'
print(compte1.__solde)
Exemple :
class Etudiant(Personne):
def __init__(self, nom, age, matricule):
super().__init__(nom, age)
self.matricule = matricule
Exemple :
class Animal:
def faire_son(self):
pass
class Chien(Animal):
def faire_son(self):
print("Woof!")
class Chat(Animal):
def faire_son(self):
print("Meow!")
def faire_son_animal(animal):
animal.faire_son()
chien = Chien()
chat = Chat()
Exemple
class Employe:
def __init__(self, nom, age, salaire):
self.nom = nom
self.age = age
self.salaire = salaire
def afficher_info(self):
print(f"Nom: {self.nom}, Age: {self.age}, Salaire: {self.salaire}")
class GestionEmployes:
def __init__(self):
self.employes = []
def afficher_employes(self):
print("Liste des employés:")
for employe in self.employes:
employe.afficher_info()
gestionnaire.ajouter_employe(employe1)
gestionnaire.ajouter_employe(employe2)
- Nous avons une classe `Employe` qui représente un employé avec des attributs
`nom`, `age` et `salaire`. La méthode `afficher_info` affiche les informations de
l'employé, et la méthode `augmenter_salaire` augmente le salaire de l'employé
d'un pourcentage donné.
Cet exemple illustre les concepts clés de la POO en Python, notamment la création
de classes, l'instanciation d'objets, l'accès aux attributs et méthodes, et
l'organisation du code en objets et en classes.
Interface graphique
ou pour apprendre les bases des interfaces graphiques. Tkinter est basée sur le kit
d'outils graphiques Tk, qui est largement utilisé et bien établi.
2. PyQt et PySide : PyQt et PySide sont des liaisons Python pour la bibliothèque
Qt, une puissante bibliothèque d'interface utilisateur C++. Ils offrent une grande
variété de widgets, une bonne performance et une grande flexibilité. PyQt utilise
une licence commerciale, tandis que PySide est disponible sous licence LGPL.
3. wxPython : wxPython est une autre bibliothèque populaire pour créer des
interfaces graphiques en Python. Elle est basée sur le framework wxWidgets et
offre une grande variété de widgets. wxPython est connue pour sa stabilité, sa
maturité et sa documentation complète.
5. PyGTK : PyGTK est une liaison Python pour GTK+, une bibliothèque
d'interface graphique multiplateforme. Elle offre une grande variété de widgets et
est souvent utilisée pour le développement d'applications GNOME sous Linux.
Tkinter est une bibliothèque standard de Python utilisée pour créer des interfaces
graphiques (GUI). Les widgets les plus couramment utilisés dans Tkinter avec
leurs propriétés correspondantes :
1. Label :
- Propriétés principales : text, font, fg (couleur du texte), bg (couleur de fond),
padx, pady.
- Description : Affiche du texte ou une image non modifiable.
2. Button :
- Propriétés principales : text, command, padx, pady.
- Description : Un bouton cliquable qui déclenche une action lorsqu'il est pressé.
3. Entry :
F A B O L | 21
4. Text :
- Propriétés principales : height, width, wrap (WORD ou CHAR), state.
- Description : Zone de texte multiligne pour l'affichage et la saisie de texte.
5. Canvas :
- Propriétés principales : height, width, bg.
- Description : Zone de dessin pour créer des formes graphiques et des
illustrations.
6. Frame :
- Propriétés principales : relief (FLAT, RAISED, SUNKEN, GROOVE,
RIDGE), bd (épaisseur de la bordure), bg.
- Description : Conteneur invisible utilisé pour organiser et regrouper d'autres
widgets.
7. Checkbutton :
- Propriétés principales : text, variable, onvalue, offvalue.
- Description : Case à cocher qui permet à l'utilisateur de sélectionner une ou
plusieurs options.
8. Radiobutton :
- Propriétés principales : text, variable, value.
- Description : Bouton radio qui permet à l'utilisateur de sélectionner une seule
option parmi plusieurs.
9. Listbox :
- Propriétés principales : height, width, selectmode (SINGLE, BROWSE,
MULTIPLE, EXTENDED).
- Description : Liste déroulante permettant à l'utilisateur de sélectionner un ou
plusieurs éléments.
10. Scrollbar :
- Propriétés principales : orient (HORIZONTAL ou VERTICAL), command.
- Description : Barre de défilement pour faire défiler le contenu d'un widget,
comme une zone de texte ou une liste.
11. Menu :
- Propriétés principales : (pas de propriétés spécifiques, mais utilise des
méthodes pour ajouter des éléments de menu).
F A B O L | 22
12. Toplevel :
- Propriétés principales : (comme Frame, mais représente une fenêtre de niveau
supérieur).
- Description : Fenêtre de niveau supérieur indépendante qui peut être utilisée
pour afficher des dialogues ou des fenêtres contextuelles.
Ces widgets offrent une gamme de fonctionnalités pour créer des interfaces
graphiques interactives avec Tkinter en Python, en permettant aux développeurs
de créer des applications conviviales et intuitives. Chaque widget a ses propres
propriétés spécifiques qui peuvent être configurées pour répondre aux besoins de
l'application.
1. Création d'une fenêtre principale : Vous pouvez créer une fenêtre principale en
instanciant la classe `Tk`.
Exemple :
import tkinter as tk
racine = tk.Tk()
racine.mainloop()
2. Ajout de widgets : Tkinter offre une variété de widgets tels que des boutons,
des étiquettes, des champs de texte, etc., que vous pouvez ajouter à la fenêtre
principale.
Exemple :
import tkinter as tk
racine = tk.Tk()
etiquette = tk.Label(racine, text="Bonjour, monde!")
etiquette.pack()
racine.mainloop()
3. Disposition des widgets : Les widgets peuvent être disposés dans la fenêtre
principale en utilisant différentes méthodes de disposition comme `pack()`,
`grid()` ou `place()`.
Exemple :
F A B O L | 23
import tkinter as tk
racine = tk.Tk()
bouton1 = tk.Button(racine, text="Bouton 1")
bouton2 = tk.Button(racine, text="Bouton 2")
bouton1.pack(side=tk.LEFT)
bouton2.pack(side=tk.RIGHT)
racine.mainloop()
Exemple :
import tkinter as tk
def afficher_message():
print("Bouton cliqué!")
racine = tk.Tk()
bouton = tk.Button(racine, text="Cliquez ici", command=afficher_message)
bouton.pack()
racine.mainloop()
Exemple :
import tkinter as tk
def afficher_fenetre_modale():
fenetre_modale = tk.Toplevel()
etiquette = tk.Label(fenetre_modale, text="Ceci est une fenêtre modale")
etiquette.pack()
racine = tk.Tk()
bouton = tk.Button(racine, text="Ouvrir fenêtre modale",
command=afficher_fenetre_modale)
bouton.pack()
racine.mainloop()
En résumé, Tkinter est une bibliothèque simple et puissante pour créer des
interfaces graphiques en Python. Avec sa syntaxe intuitive et ses fonctionnalités
flexibles, elle permet de concevoir des applications interactives avec facilité.
F A B O L | 24
Exercices
Pour créer une application de gestion des achats en Python avec une interface
graphique utilisant Tkinter, nous allons inclure les fonctionnalités suivantes :
1. Définition de la géométrie de la fenêtre.
2. Placement des widgets à l'aide de la méthode `place`.
3. Utilisation de labels (étiquettes) pour afficher du texte.
Étapes de l'application :
import tkinter as tk
from tkinter import messagebox
class GestionAchatsApp:
def __init__(self, root):
self.root = root
self.root.geometry("400x400")
self.root.title("Gestion des Achats")
self.entry_prix = tk.Entry(root)
self.entry_prix.place(x=150, y=100)
def ajouter_achat(self):
nom = self.entry_nom.get()
quantite = self.entry_quantite.get()
prix = self.entry_prix.get()
def afficher_achats(self):
self.liste_achats.delete(1.0, tk.END)
F A B O L | 26
if not self.achats:
self.liste_achats.insert(tk.END, "Aucun achat enregistré.\n")
else:
for achat in self.achats:
self.liste_achats.insert(tk.END, f"Produit: {achat['nom']}, Quantité:
{achat['quantite']}, Prix: {achat['prix']}\n")
if __name__ == "__main__":
root = tk.Tk()
app = GestionAchatsApp(root)
root.mainloop()
Explications :
Version améliorée
2. Calcul automatique des valeurs PTHT, PTTC et Net à payer lors de l'ajout d'un
achat.
Code amélioré :
import tkinter as tk
from tkinter import messagebox
class GestionAchatsApp:
def __init__(self, root):
self.root = root
self.root.geometry("500x500")
self.root.title("Gestion des Achats")
self.liste_achats.place(x=20, y=220)
def ajouter_achat(self):
nom = self.entry_nom.get()
quantite = self.entry_quantite.get()
prix = self.entry_prix.get()
def afficher_achats(self):
self.liste_achats.delete(1.0, tk.END)
F A B O L | 29
if not self.achats:
self.liste_achats.insert(tk.END, "Aucun achat enregistré.\n")
else:
for achat in self.achats:
self.liste_achats.insert(tk.END, f"Produit: {achat['nom']}, Quantité:
{achat['quantite']}, Prix unitaire HT: {achat['prix']}, Total HT:
{achat['total_ht']:.2f}\n")
def mettre_a_jour_totaux(self):
tva = self.ptht * 0.16
pttc = self.ptht + tva
self.label_ptht.config(text=f"PTHT: {self.ptht:.2f}")
self.label_tva.config(text=f"TVA (16%): {tva:.2f}")
self.label_pttc.config(text=f"PTTC: {pttc:.2f}")
if __name__ == "__main__":
root = tk.Tk()
app = GestionAchatsApp(root)
root.mainloop()
Ces améliorations permettent une gestion complète des achats avec calcul
automatique des totaux, incluant la TVA.
F A B O L | 30
import tkinter as tk
from tkinter import ttk
class Employe:
def __init__(self, nom, age, salaire):
self.nom = nom
self.age = age
self.salaire = salaire
def afficher_info(self):
return f"Nom: {self.nom}, Age: {self.age}, Salaire: {self.salaire}"
class GestionEmployes:
def __init__(self):
self.employes = []
def afficher_employes(self):
infos_employes = []
for employe in self.employes:
infos_employes.append(employe.afficher_info())
return infos_employes
def ajouter_employe():
nom = entry_nom.get()
age = int(entry_age.get())
salaire = float(entry_salaire.get())
employe = Employe(nom, age, salaire)
gestionnaire.ajouter_employe(employe)
update_liste_employes()
F A B O L | 31
def augmenter_salaire():
index = liste_employes.curselection()[0]
pourcentage = int(entry_pourcentage.get())
gestionnaire.employes[index].augmenter_salaire(pourcentage)
update_liste_employes()
def update_liste_employes():
liste_employes.delete(0, tk.END)
for employe in gestionnaire.afficher_employes():
liste_employes.insert(tk.END, employe)
frame_ajout = tk.Frame(root)
frame_ajout.pack(padx=10, pady=10)
frame_modification = tk.Frame(root)
frame_modification.pack(padx=10, pady=10)
root.mainloop()
Cet exemple utilise Tkinter pour créer une interface graphique avec deux parties
:
1. La première partie permet d'ajouter un employé en saisissant son nom, son âge
et son salaire, puis en appuyant sur le bouton "Ajouter Employé".
2. La deuxième partie affiche la liste des employés ajoutés sous forme d'une liste
déroulante. Vous pouvez sélectionner un employé dans la liste et saisir un
pourcentage d'augmentation de salaire dans le champ prévu à cet effet. Ensuite,
en appuyant sur le bouton "Augmenter Salaire", le salaire de l'employé
sélectionné sera augmenté de ce pourcentage.
Une base de données est un ensemble organisé de données qui permet de stocker,
d'accéder et de gérer efficacement des informations.
SQLite est une bibliothèque de gestion de base de données légère qui est intégrée
à Python par défaut. Voici comment utiliser SQLite pour créer une base de
données et interagir avec elle en Python :
import sqlite3
# Insertion de données
cursor.execute("INSERT INTO utilisateurs (nom, age) VALUES ('Alice', 30)")
cursor.execute("INSERT INTO utilisateurs (nom, age) VALUES ('Bob', 25)")
# Sélection de données
cursor.execute("SELECT * FROM utilisateurs")
for row in cursor.fetchall():
print(row)
# Fermeture de la connexion
connexion.close()
BD MySQL
Exemple :
import mysql.connector
connexion = mysql.connector.connect(
host="localhost",
F A B O L | 34
user="utilisateur",
password="mot_de_passe",
database="ma_base_de_donnees"
)
Exemple :
curseur = connexion.cursor()
curseur.execute("CREATE TABLE utilisateurs (id INT AUTO_INCREMENT
PRIMARY KEY, nom VARCHAR(255), age INT)")
Exemple :
curseur.execute("INSERT INTO utilisateurs (nom, age) VALUES (%s, %s)",
("Alice", 30))
Exemple :
curseur.execute("SELECT * FROM utilisateurs")
resultats = curseur.fetchall()
for resultat in resultats:
print(resultat)
Exemple :
curseur.execute("UPDATE utilisateurs SET age = %s WHERE nom = %s", (25,
"Alice"))
Exemple :
curseur.execute("DELETE FROM utilisateurs WHERE nom = %s", ("Alice",))
F A B O L | 35
Exemple :
connexion.commit()
Exercice
import mysql.connector
connexion.commit()
print("Produit modifié avec succès !")
# Exemple d'utilisation
ajouter_produit("P001", "Ordinateur portable", 999.99)
ajouter_produit("P002", "Smartphone", 599.99)
afficher_produits()
modifier_produit("P001", "Nouvel ordinateur portable", 1099.99)
supprimer_produit("P002")
afficher_produits()
# Fermeture de la connexion
connexion.close()
Exercice2
Voici un exemple complet d'un programme Python utilisant Tkinter pour créer
une interface graphique et MySQL Connector/Python pour la gestion des ventes
de produits. Ce programme permet d'ajouter, modifier, supprimer et afficher les
produits dans une base de données MySQL :
import mysql.connector
F A B O L | 37
afficher_produits()
frame_formulaire = Frame(root)
frame_formulaire.pack(pady=10)
frame_boutons = Frame(root)
frame_boutons.pack(pady=10)
bouton_modifier.grid(row=0, column=1)
frame_resultats = Frame(root)
frame_resultats.pack(pady=10)
afficher_produits()
root.mainloop()
# Fermeture de la connexion
connexion.close()
Ce programme crée une interface graphique avec Tkinter pour saisir les
informations des produits et des boutons pour ajouter, modifier et supprimer les
produits. Les produits sont affichés dans un tableau Tkinter. Lorsque vous ajoutez,
modifiez ou supprimez un produit, la base de données est mise à jour et les
résultats sont rafraîchis dans le tableau.
Exercice
Voici un exemple complet d'un programme Python utilisant Tkinter pour créer
une interface graphique permettant de gérer les ventes de produits à partir d'une
base de données MySQL. L'utilisateur peut sélectionner les produits dans un
ComboBox, indiquer la quantité, et le prix partiel s'affiche automatiquement. Les
événements pour ajouter, modifier, supprimer et afficher les ventes sont
également pris en charge :
import mysql.connector
from tkinter import *
from tkinter import ttk, messagebox
connexion = mysql.connector.connect(
host="localhost",
user="utilisateur",
password="mot_de_passe",
database="gestion_ventes"
)
# Fonction pour mettre à jour le prix partiel lors de la sélection d'un produit
def maj_prix_partiel(event):
produit = combo_produits.get()
quantite = entry_quantite.get()
prix_unitaire = prix_produit.get(produit)
prix_total = float(quantite) * prix_unitaire
label_prix_partiel.config(text=f"Prix partiel : {prix_total} €")
frame_vente = Frame(root)
frame_vente.pack(pady=10)
frame_ventes = Frame(root)
frame_ventes.pack(pady=10)
afficher_ventes()
root.mainloop()
# Fermeture de la connexion
connexion.close()
MongoDB
import pymongo
collection.insert_one(employe)
print("Employé ajouté avec succès !")
# Exemple d'utilisation
creer_employe("Alice", 30, 50000)
creer_employe("Bob", 25, 45000)
mettre_a_jour_employe("Alice", 55000)
supprimer_employe("Bob")
- Nous utilisons le module `pymongo` pour établir une connexion à une base de
données MongoDB.
- Nous créons une base de données appelée "gestion_employes" avec une
collection "employes".
- Nous définissons des fonctions pour créer, lire, mettre à jour et supprimer des
employés dans la collection.
- Nous appelons ces fonctions pour effectuer des opérations CRUD sur la
collection d'employés.
- Nous utilisons une base de données locale MongoDB, mais vous pouvez
remplacer l'URL de connexion par celle de votre base de données MongoDB
distante.
Cet exemple illustre comment utiliser Python avec MongoDB pour créer une
application simple de gestion d'employés.
Conclusion