Python représente le choix idéal pour débuter en programmation. Je vais vous présenter les fondamentaux essentiels pour maîtriser ce langage rapidement : de l’installation à vos premiers projets pratiques.
Introduction et mise en route avec Python
Qu’est-ce que Python ? Définition, avantages et opportunités
Python révolutionne la programmation depuis 1991, créé par Guido van Rossum aux Pays-Bas. Contrairement aux idées reçues, son nom ne vient pas du serpent mais de la troupe britannique « Monty Python’s Flying Circus ».
Ce langage se distingue par une philosophie unique qui privilégie la lisibilité du code. Sa syntaxe claire se rapproche du langage naturel. Cela vous permet de vous concentrer sur la résolution de problèmes plutôt que sur la complexité technique.
Concrètement, la polyvalence de Python s’illustre dans des domaines variés :
- Le développement web avec Django et Flask
- La science des données avec Pandas, NumPy et Matplotlib
- L’intelligence artificielle avec TensorFlow et PyTorch
- L’automatisation de tâches et scripts système
Cette versatilité fait de Python le langage le plus demandé sur le marché du travail. En pratique, Guido van Rossum travaille maintenant chez Microsoft depuis 2020, confirmant l’adoption massive du langage par les géants technologiques.
La communauté exceptionnellement active compte plus de 6 millions d’utilisateurs. Elle développe continuellement des bibliothèques qui enrichissent l’écosystème. Vous trouverez plus de 600 000 modules disponibles sur pypi.org, couvrant pratiquement tous les besoins.
Installation de Python et choix de l’environnement de développement
Comment installer Python selon votre système ? Le processus reste simple et accessible sur toutes les plateformes.
Pour Windows, plusieurs options s’offrent à vous. La méthode directe consiste à télécharger l’installateur officiel depuis python.org. Cette approche convient parfaitement aux débutants car elle installe automatiquement Python avec tous les outils nécessaires.
Par exemple, le Microsoft Store propose une installation encore plus rapide. Pour les utilisateurs avancés, Windows Subsystem for Linux (WSL) offre une expérience Linux complète sur Windows.
Sur macOS, Python 2.7 est préinstallé sur les anciennes versions du système. Vous devrez installer Python 3 manuellement. Je recommande Homebrew, un gestionnaire de paquets qui facilite l’installation et maintient Python automatiquement à jour.
Les distributions Linux incluent généralement Python, mais souvent une version ancienne. Utilisez votre gestionnaire habituel : apt-get pour Ubuntu/Debian, dnf pour Fedora, ou pacman pour Arch Linux.
Quel environnement de développement choisir ? Vous avez plusieurs excellentes options selon vos besoins et votre niveau :
- PyCharm de JetBrains : solution la plus complète avec auto-complétion intelligente et débogage visuel
- Visual Studio Code : alternative polyvalente et gratuite, légère et flexible
- IDLE ou Thonny : interfaces simplifiées parfaites pour débuter
PyCharm Community est gratuit, tandis que la version Professional coûte 8,90 €/mois avec des fonctionnalités supplémentaires. Cela vous permet de choisir selon votre budget et vos besoins.
Configuration et création de votre premier script
Vérifiez que tout fonctionne correctement en ouvrant votre terminal. Tapez python --version ou python3 --version selon votre système. Vous devriez voir apparaître le numéro de version, par exemple « Python 3.13.6« .
Créons maintenant votre premier programme Python. Ouvrez votre éditeur et créez un fichier nommé premier_programme.py. L’extension .py indique qu’il s’agit d’un fichier Python.
Saisissez ce code simple :
python
# Mon premier programme Python
print("Bonjour, bienvenue dans le monde de Python !")
nom = input("Quel est votre nom ? ")
print(f"Enchanté de vous rencontrer, {nom} !")
Sauvegardez le fichier, puis exécutez-le en tapant python premier_programme.py dans votre terminal. Ce simple programme illustre déjà plusieurs concepts fondamentaux.
En pratique, vous découvrez les commentaires (ligne commençant par #), l’affichage avec print(), la saisie utilisateur avec input(), et les chaînes formatées avec les f-strings. Cette première réussite marque le début de votre aventure Python !
En lien avec ce sujet, Choisir son agence de développement web : 5 critères qui font la différence mérite votre attention.
Syntaxe et données de base
Structure du code Python et importance de l’indentation
Qu’est-ce qui distingue Python de tous les autres langages ? Sa gestion unique de l’indentation révolutionne la façon d’écrire du code.
Là où d’autres langages utilisent des accolades ou mots-clés spéciaux, Python utilise l’espacement. Cette particularité force à écrire du code propre et lisible dès le départ.
L’indentation fait partie intégrante de la syntaxe : un mauvais espacement génère une erreur. La règle est simple : tous les éléments d’un même niveau hiérarchique doivent être alignés avec le même nombre d’espaces.
Par convention, j’utilise 4 espaces pour chaque niveau d’indentation. Python accepte n’importe quel nombre cohérent d’espaces ou tabulations.
python
if age >= 18:
print("Vous êtes majeur")
if permis_conduire:
print("Vous pouvez conduire")
else:
print("Vous ne pouvez pas conduire")
else:
print("Vous êtes mineur")
print("Fin du programme")
Cette approche présente plusieurs avantages considérables. D’abord, elle élimine les débats sans fin sur le placement des accolades. Ensuite, elle rend le code naturellement lisible, même pour un débutant.
Cela vous permet de réfléchir à la structure logique de votre programme pendant que vous l’écrivez. Cette contrainte apparente devient rapidement un atout qui améliore la qualité de votre code.
Variables, types de données et opérateurs
Créer une variable en Python ? C’est d’une simplicité déconcertante. Contrairement à C++ ou Java, vous n’avez pas besoin de déclarer le type à l’avance.
Python détermine automatiquement le type en fonction de la valeur assignée. Cette fonctionnalité s’appelle le typage dynamique et simplifie énormément l’écriture de code.
python
# Python détermine automatiquement les types
age = 25 # Entier (int)
prix = 19.99 # Nombre décimal (float)
nom = "Alice" # Chaîne de caractères (str)
actif = True # Booléen (bool)
Les types de données fondamentaux incluent les entiers (int), les flottants (float), les chaînes (str), et les booléens (bool). Python gère automatiquement la conversion entre types quand c’est possible et sûr.

Python propose une gamme complète d’opérateurs pour manipuler ces données. Les opérateurs arithmétiques classiques (+, -, *, /) fonctionnent intuitivement. Par exemple, ** sert pour l’exponentiation et // pour la division entière.
Concrètement, les opérateurs de comparaison (==, !=, <, >, <=, >=) retournent des valeurs booléennes. Les opérateurs logiques (and, or, not) permettent de combiner des conditions complexes.
Chaînes de caractères et manipulation de texte
La manipulation de texte représente l’une des forces exceptionnelles de Python. Le langage offre des outils puissants et intuitifs pour travailler avec les chaînes de caractères.
Vous pouvez créer des chaînes avec des guillemets simples ou doubles. Les guillemets triples permettent de créer des chaînes multi-lignes, particulièrement utiles pour de longs textes.
python
message_simple = "Bonjour !"
message_apostrophe = "J'aime programmer en Python"
texte_long = """
Ceci est un texte
qui s'étend sur
plusieurs lignes
"""
Les f-strings, introduites dans Python 3.6, révolutionnent la façon de formater du texte. Cette syntaxe élégante permet d’insérer directement des variables et expressions dans vos chaînes.
python
nom = "Marie"
age = 30
message = f"Bonjour {nom}, vous avez {age} ans et l'année prochaine vous aurez {age + 1} ans"
Python propose de nombreuses méthodes intégrées : .upper() et .lower() pour changer la casse, .strip() pour supprimer les espaces, .replace() pour remplacer du texte. Cela vous permet de manipuler facilement n’importe quel texte.
Avant de vous lancer dans le développement web, explorez Freelance ou salarié : quel statut choisir pour un développeur web ?
Commentaires et bonnes pratiques de nommage
Comment distinguer un code amateur d’un code professionnel ? Par la qualité des commentaires et le nommage des variables.
Les commentaires jouent un rôle crucial dans la lisibilité. En Python, les commentaires sur une ligne commencent par le symbole #. Tout ce qui suit est ignoré par l’interpréteur.
python
# Ceci est un commentaire
prix_ttc = prix_ht * 1.20 # Calcul du prix TTC avec TVA de 20%
Pour les commentaires multi-lignes ou la documentation de fonctions, utilisez les docstrings délimitées par trois guillemets. Cette approche standardisée facilite la maintenance et la collaboration.
Le nommage des variables suit des conventions précises. Utilisez des noms descriptifs en minuscules, séparés par des underscores (snake_case). Évitez les abréviations cryptiques et préférez la clarté à la brièveté.
En pratique, les constantes s’écrivent en majuscules (TAUX_TVA = 0.20), tandis que les classes utilisent la notation PascalCase (class GestionnaireUtilisateur). Cela vous permet de structurer votre code de façon cohérente et professionnelle.
Contrôle de flux et fonctions
Structures conditionnelles (if, elif, else)
Les structures conditionnelles constituent le cœur de la logique de tout programme informatique. Elles permettent à votre code de prendre des décisions et créent des programmes dynamiques et interactifs.
En Python, la syntaxe des conditions est remarquablement claire. L’instruction if évalue une condition et exécute le code indenté qui suit si cette condition est vraie.
python
temperature = 25
if temperature > 20:
print("Il fait bon dehors !")
conseil = "Vous pouvez sortir en t-shirt"
L’instruction elif (contraction de « else if ») permet de tester plusieurs conditions successives. Python évalue chaque condition dans l’ordre et exécute le premier bloc dont la condition est vraie.
python
note = 85
if note >= 90:
mention = "Excellent"
elif note >= 80:
mention = "Très bien"
elif note >= 70:
mention = "Bien"
elif note >= 60:
mention = "Passable"
else:
mention = "Insuffisant"
print(f"Votre mention : {mention}")
L’instruction else optionnelle capture tous les cas non couverts. Cette structure garantit qu’au moins un bloc de code sera toujours exécuté.
Concrètement, Python permet d’imbriquer les conditions pour créer des logiques plus complexes. Attention cependant à ne pas créer trop de niveaux qui rendraient votre code difficile à suivre.
Boucles (for, while) et instructions de contrôle
Les boucles révolutionnent votre façon de programmer en automatisant la répétition de tâches. Au lieu d’écrire le même code plusieurs fois, vous utilisez des boucles pour exécuter des instructions de manière répétée.
La boucle for parcourt une séquence d’éléments et exécute le code pour chaque élément. Elle convient parfaitement quand vous connaissez à l’avance le nombre d’itérations.
python
# Parcourir une liste
fruits = ["pomme", "banane", "orange"]
for fruit in fruits:
print(f"J'aime les {fruit}s")
# Répéter une action un nombre précis de fois
for i in range(5):
print(f"Répétition numéro {i + 1}")
La boucle while continue tant qu’une condition reste vraie. Elle convient pour des répétitions dont vous ne connaissez pas le nombre à l’avance.
python
compteur = 0
while compteur < 10:
print(f"Compteur : {compteur}")
compteur += 1
Python fournit deux instructions de contrôle essentielles pour gérer le flux des boucles. L’instruction break interrompt immédiatement la boucle, tandis que continue passe directement à l’itération suivante.
Cela vous permet de créer des logiques sophistiquées tout en gardant votre code lisible et efficace. En pratique, ces outils gèrent élégamment les situations exceptionnelles dans vos boucles.

Création et utilisation des fonctions
Les fonctions représentent l’un des concepts les plus puissants de la programmation. Elles vous permettent d’organiser votre code en blocs réutilisables, évitant la répétition et améliorant la lisibilité.
En Python, créer une fonction est simple grâce au mot-clé def. Cette approche modulaire transforme radicalement votre façon de concevoir des programmes.
python
def saluer_utilisateur():
print("Bienvenue dans notre application !")
print("Nous espérons que vous apprécierez votre visite")
# Appel de la fonction
saluer_utilisateur()
Les fonctions deviennent vraiment intéressantes quand elles acceptent des paramètres pour personnaliser leur comportement. Cette flexibilité multiplie leur utilité.
python
def calculer_aire_rectangle(longueur, largeur):
aire = longueur * largeur
return aire
# Utilisation avec différentes valeurs
surface_chambre = calculer_aire_rectangle(4, 3)
surface_salon = calculer_aire_rectangle(6, 5)
L’instruction return permet à une fonction de renvoyer une valeur vers le code qui l’a appelée. Sans return, une fonction Python retourne automatiquement None.
Par exemple, vous pouvez définir des valeurs par défaut pour vos paramètres :
python
def presenter_personne(nom, age=25, ville="Paris"):
return f"{nom}, {age} ans, habite à {ville}"
# Différentes façons d'appeler la fonction
print(presenter_personne("Alice"))
print(presenter_personne("Bob", 30))
print(presenter_personne("Claire", ville="Lyon"))
Cela vous permet de créer des fonctions flexibles qui s’adaptent à différentes situations sans dupliquer le code.
Paramètres, valeurs de retour et portée des variables
La portée des variables (ou scope) détermine où dans votre code une variable peut être utilisée. Comprendre ce concept évite de nombreuses erreurs courantes.
Python distingue principalement deux portées : locale et globale. Les variables créées à l’intérieur d’une fonction ont une portée locale – elles n’existent que pendant l’exécution de cette fonction.
python
def calculer_tva():
taux = 0.20 # Variable locale
prix_ht = 100
tva = prix_ht * taux
return tva
resultat = calculer_tva()
# La variable 'taux' n'est pas accessible ici
Les variables créées au niveau principal ont une portée globale. Elles peuvent être lues depuis n’importe où dans le programme. Cependant, les modifier depuis une fonction nécessite le mot-clé global.
Python offre une grande flexibilité dans le passage de paramètres. Vous pouvez passer des arguments par position, par nom, ou utiliser des valeurs par défaut.
python
def configurer_serveur(nom, port=8080, debug=False, ssl=True):
print(f"Serveur {nom} sur port {port}")
print(f"Debug: {debug}, SSL: {ssl}")
# Différentes façons d'appeler
configurer_serveur("API")
configurer_serveur("Web", 3000, debug=True)
configurer_serveur("API", ssl=False, debug=True)
Cette flexibilité rend vos fonctions plus utilisables et maintenables. Cela vous permet d’adapter leur comportement sans dupliquer le code.
Structures de données et outils avancés
Listes, tuples et dictionnaires
Les structures de données constituent les fondations sur lesquelles vous construirez des programmes sophistiqués. Python propose plusieurs types de conteneurs, chacun optimisé pour des usages spécifiques.
Les listes représentent la structure la plus polyvalente pour stocker des collections d’éléments. Elles sont modifiables, ordonnées, et acceptent tous types d’objets.
python
# Création et manipulation de listes
courses = ["pain", "lait", "œufs"]
courses.append("fromage") # Ajouter un élément
courses.insert(1, "beurre") # Insérer à une position
premier_article = courses[0] # Accéder par index
Les tuples ressemblent aux listes mais sont immutables – une fois créés, vous ne pouvez plus les modifier. Cette caractéristique les rend parfaits pour des données qui ne doivent pas changer.
python
coordonnees = (48.8566, 2.3522) # Paris
point_rgb = (255, 128, 0) # Couleur orange
Les dictionnaires stockent des paires clé-valeur, permettant d’associer des informations de manière logique. Cette structure excelle pour modéliser des données complexes.
python
personne = {
"nom": "Dupont",
"prenom": "Marie",
"age": 30,
"ville": "Lyon"
}
# Accès et modification
nom_complet = f"{personne['prenom']} {personne['nom']}"
personne["age"] = 31 # Modification
personne["email"] = "marie@email.com" # Ajout
Cette variété de structures vous permet de modéliser efficacement n’importe quel type de données. Cela vous permet d’organiser l’information selon la logique métier de vos applications.
Méthodes essentielles pour manipuler les données
Python fournit une riche collection de méthodes intégrées pour manipuler vos structures de données. Maîtriser ces outils vous fera gagner un temps considérable.
| Structure | Méthode | Description | Exemple |
| Liste | append() | Ajoute un élément à la fin | ma_liste.append("nouveau") |
| Liste | remove() | Supprime un élément par valeur | ma_liste.remove("ancien") |
| Liste | sort() | Trie la liste en place | ma_liste.sort() |
| Dictionnaire | keys() | Retourne les clés | list(mon_dict.keys()) |
| Dictionnaire | values() | Retourne les valeurs | list(mon_dict.values()) |
| Dictionnaire | get() | Accès sécurisé avec valeur par défaut | mon_dict.get("clé", "défaut") |
Les compréhensions de liste offrent une syntaxe élégante pour créer et transformer des listes. Cette technique permet d’écrire du code plus concis et plus lisible.
python
# Création d'une liste de carrés
carres = [x**2 for x in range(10)]
# Filtrage avec condition
pairs = [x for x in range(20) if x % 2 == 0]
# Transformation de données
noms_majuscules = [nom.upper() for nom in ["alice", "bob", "claire"]]
En pratique, ces techniques permettent d’écrire du code plus concis et plus lisible, caractéristique du style « pythonique ». Cela vous permet d’exprimer des opérations complexes en quelques lignes.
Gestion des erreurs avec try/except
Gérer les erreurs correctement distingue un code amateur d’un code professionnel. Python propose un système robuste de gestion des exceptions qui permet de traiter élégamment les situations imprévues.
La structure try/except vous permet d’anticiper et de gérer les erreurs potentielles. Cette approche préventive améliore la robustesse de vos programmes.
python
def diviser_nombres(a, b):
try:
resultat = a / b
return resultat
except ZeroDivisionError:
print("Erreur : Division par zéro impossible")
return None
except TypeError:
print("Erreur : Les arguments doivent être des nombres")
return None
Vous pouvez capturer plusieurs types d’exceptions dans un même bloc. Une exception générale peut capturer toutes les erreurs non prévues.
python
def lire_fichier_config(nom_fichier):
try:
with open(nom_fichier, 'r') as fichier:
contenu = fichier.read()
return contenu
except FileNotFoundError:
print(f"Le fichier {nom_fichier} n'existe pas")
except PermissionError:
print(f"Permission refusée pour lire {nom_fichier}")
except Exception as e:
print(f"Erreur inattendue : {e}")
La clause finally optionnelle exécute du code peu importe qu’une erreur survienne ou non. Elle est idéale pour les opérations de nettoyage.
Cela vous permet de créer des programmes robustes qui gèrent gracieusement les situations exceptionnelles sans planter brutalement.
Modules, bibliothèques et installation avec pip
L’écosystème Python tire sa force de sa bibliothèque standard exceptionnelle et de l’énorme collection de modules tiers. Cette richesse évite de réinventer la roue et accélère considérablement le développement.
La bibliothèque standard inclut des modules pour pratiquement tous les besoins courants. Par exemple, datetime pour les dates, random pour la génération aléatoire, json pour le traitement de données JSON.
python
import datetime
import random
import json
# Utilisation des modules
aujourd_hui = datetime.date.today()
nombre_aleatoire = random.randint(1, 100)
donnees = {"nom": "Alice", "age": 30}
json_string = json.dumps(donnees)
Pip, le gestionnaire de paquets Python, vous permet d’installer facilement des milliers de bibliothèques tiers. Cette facilité d’installation démocratise l’accès aux outils les plus puissants.
bash
pip install requests # Pour les requêtes HTTP
pip install pandas # Pour l'analyse de données
pip install flask # Pour le développement web
Vous pouvez ensuite importer et utiliser ces bibliothèques dans vos programmes :
python
import requests
import pandas as pd
# Récupérer des données depuis une API
response = requests.get("https://api.exemple.com/data")
data = response.json()
# Créer un DataFrame pandas
df = pd.DataFrame(data)
print(df.head())
Cette approche modulaire permet de construire des applications complexes rapidement. Cela vous permet de combiner des composants spécialisés et testés plutôt que de tout développer depuis zéro.
Mise en pratique : projets pour débuter

Calculatrice simple et gestion des entrées
Créer une calculatrice constitue le projet idéal pour appliquer vos premières connaissances Python. Ce programme combine la gestion des entrées utilisateur, les opérations mathématiques, et la logique conditionnelle.
Commençons par une version simple qui effectue les quatre opérations de base. Cette approche progressive vous permet d’assimiler les concepts étape par étape.
python
def calculatrice():
print("=== Calculatrice Python ===")
print("Opérations disponibles : +, -, *, /")
try:
# Saisie des nombres
nombre1 = float(input("Entrez le premier nombre : "))
operateur = input("Choisissez l'opération (+, -, *, /) : ")
nombre2 = float(input("Entrez le second nombre : "))
# Calcul selon l'opérateur
if operateur == "+":
resultat = nombre1 + nombre2
elif operateur == "-":
resultat = nombre1 - nombre2
elif operateur == "*":
resultat = nombre1 * nombre2
elif operateur == "/":
if nombre2 != 0:
resultat = nombre1 / nombre2
else:
print("Erreur : Division par zéro impossible")
return
else:
print("Opérateur non reconnu")
return
print(f"Résultat : {nombre1} {operateur} {nombre2} = {resultat}")
except ValueError:
print("Erreur : Veuillez entrer des nombres valides")
# Lancement du programme
calculatrice()
Ce projet vous enseigne plusieurs concepts fondamentaux : la gestion des entrées utilisateur avec validation, le traitement des erreurs avec try/except. La structure conditionnelle implémente la logique métier de façon claire.
Concrètement, vous pouvez enrichir cette calculatrice en ajoutant des fonctionnalités avancées : calculs de puissance, racine carrée, ou pourcentages. Cette évolution naturelle vous initie à la modularité en créant des fonctions séparées.
Jeu interactif avec conditions et boucles
Développer un jeu simple comme « Devinez le nombre » vous initie aux aspects ludiques de la programmation. Ce projet consolide vos acquis sur les boucles et conditions de façon amusante.
python
import random
def jeu_devine_nombre():
print("=== Jeu : Devinez le nombre ===")
print("J'ai choisi un nombre entre 1 et 100")
nombre_secret = random.randint(1, 100)
tentatives = 0
max_tentatives = 7
while tentatives < max_tentatives:
try:
guess = int(input(f"Tentative {tentatives + 1}/{max_tentatives} : "))
tentatives += 1
if guess == nombre_secret:
print(f"🎉 Félicitations ! Vous avez trouvé en {tentatives} tentatives !")
break
elif guess < nombre_secret:
print("📈 Plus grand !")
else:
print("📉 Plus petit !")
if tentatives == max_tentatives:
print(f"💔 Perdu ! Le nombre était {nombre_secret}")
except ValueError:
print("Veuillez entrer un nombre entier valide")
tentatives -= 1 # Ne pas compter cette tentative
# Proposer de rejouer
if input("Voulez-vous rejouer ? (o/n) : ").lower() == 'o':
jeu_devine_nombre()
# Lancement du jeu
jeu_devine_nombre()
Ce projet illustre l’utilisation pratique des boucles for et while. La génération de nombres aléatoires avec le module random ajoute l’imprévisibilité nécessaire au jeu.
L’implémentation d’une logique de jeu complète avec système de 7 tentatives limitées simule des contraintes réelles. L’ajout d’emojis et messages personnalisés améliore l’expérience utilisateur.
Cela vous permet de comprendre l’importance de l’aspect interface dans vos programmes. En pratique, même un programme technique doit offrir une expérience agréable.
Gestionnaire de données et automatisation
Un gestionnaire de contacts simule un cas d’usage professionnel en combinant manipulation de fichiers, structures de données, et interface utilisateur. Ce projet vous prépare aux applications réelles.
python
import json
import os
class GestionnaireContacts:
def __init__(self, fichier="contacts.json"):
self.fichier = fichier
self.contacts = self.charger_contacts()
def charger_contacts(self):
"""Charge les contacts depuis le fichier JSON"""
if os.path.exists(self.fichier):
try:
with open(self.fichier, 'r', encoding='utf-8') as f:
return json.load(f)
except json.JSONDecodeError:
return {}
return {}
def sauvegarder_contacts(self):
"""Sauvegarde les contacts dans le fichier JSON"""
with open(self.fichier, 'w', encoding='utf-8') as f:
json.dump(self.contacts, f, indent=2, ensure_ascii=False)
def ajouter_contact(self):
"""Ajoute un nouveau contact"""
nom = input("Nom complet : ")
telephone = input("Numéro de téléphone : ")
email = input("Email : ")
self.contacts[nom] = {
"telephone": telephone,
"email": email
}
self.sauvegarder_contacts()
print(f"Contact {nom} ajouté avec succès !")
def afficher_contacts(self):
"""Affiche tous les contacts"""
if not self.contacts:
print("Aucun contact enregistré.")
return
print("\n=== Liste des contacts ===")
for nom, info in self.contacts.items():
print(f"📞 {nom}")
print(f" Tél: {info['telephone']}")
print(f" Email: {info['email']}")
print()
def rechercher_contact(self):
"""Recherche un contact par nom"""
terme = input("Nom à rechercher : ").lower()
resultats = {nom: info for nom, info in self.contacts.items()
if terme in nom.lower()}
if resultats:
for nom, info in resultats.items():
print(f"Trouvé : {nom} - {info['telephone']}")
else:
print("Aucun contact trouvé.")
def menu_principal(self):
"""Interface principale du gestionnaire"""
while True:
print("\n=== Gestionnaire de Contacts ===")
print("1. Ajouter un contact")
print("2. Afficher tous les contacts")
print("3. Rechercher un contact")
print("4. Quitter")
choix = input("Votre choix (1-4) : ")
if choix == "1":
self.ajouter_contact()
elif choix == "2":
self.afficher_contacts()
elif choix == "3":
self.rechercher_contact()
elif choix == "4":
print("Au revoir !")
break
else:
print("Choix invalide. Recommencez.")
# Utilisation
if __name__ == "__main__":
gestionnaire = GestionnaireContacts()
gestionnaire.menu_principal()
Ce projet avancé introduit la programmation orientée objet avec les classes. La persistence des données avec JSON et la gestion de fichiers simulent un environnement professionnel.
Il démontre comment structurer une application complète avec interface utilisateur et stockage permanent. Cette approche modulaire facilite la maintenance et l’évolution du code.
Ces trois projets forment une progression naturelle qui vous mène des concepts de base vers des applications pratiques. Chacun consolide vos acquis tout en introduisant de nouveaux concepts.
Cela vous permet d’aborder progressivement des projets plus ambitieux. En pratique, cette montée en complexité reproduit l’apprentissage naturel de la programmation.
Vous maîtrisez maintenant les fondamentaux de Python ! Ces bases solides vous ouvrent les portes vers des domaines passionnants.
Concrètement, vous pouvez explorer le développement web avec Django ou Flask, l’analyse de données avec Pandas, l’intelligence artificielle avec TensorFlow. L’automatisation de tâches représente également un domaine très demandé.









0 commentaires