Projets Pratiques Python

C'est l'heure de mettre en pratique tout ce que tu as appris ! 5 projets complets qui combinent variables, conditions, boucles, fonctions et fichiers. Chaque projet est un defi realiste que tu pourras adapter a tes propres idees !

Difficulte:
60 min
+100 XP

Objectifs du cours

  • Appliquer toutes les notions apprises dans des projets concrets
  • Developper une methodologie de resolution de problemes
  • Creer des programmes interactifs avec input()
  • Structurer son code avec des fonctions
  • Gerer les erreurs utilisateur de maniere elegante

Erreurs courantes a eviter

  • Se lancer dans le code sans planifier la structure
  • Ne pas tester les cas limites (valeurs extremes, erreurs)
  • Oublier de valider les entrees utilisateur
  • Ecrire tout dans une seule fonction geante

**Objectif**

Creer une calculatrice qui : - Demande deux nombres a l'utilisateur - Propose plusieurs operations (+, -, *, /, **, %) - Affiche le resultat - Gere les erreurs (division par zero, saisie invalide) - Permet de faire plusieurs calculs

**Concepts utilises :** - Variables et types (int, float) - Input et conversion - Conditions if/elif/else - Boucle while - Gestion d'erreurs try/except

**Etapes de developpement :** 1. Creer une fonction pour chaque operation 2. Creer un menu de selection 3. Demander les nombres 4. Effectuer le calcul 5. Proposer de recommencer

Python
# PROJET 1 : Calculatrice Interactive

def addition(a, b):
    return a + b

def soustraction(a, b):
    return a - b

def multiplication(a, b):
    return a * b

def division(a, b):
    if b == 0:
        return "Erreur: Division par zero impossible !"
    return a / b

def puissance(a, b):
    return a ** b

def modulo(a, b):
    if b == 0:
        return "Erreur: Modulo par zero impossible !"
    return a % b

def afficher_menu():
    print("\n" + "="*40)
    print("       CALCULATRICE PYTHON")
    print("="*40)
    print("1. Addition (+)")
    print("2. Soustraction (-)")
    print("3. Multiplication (*)")
    print("4. Division (/)")
    print("5. Puissance (**)")
    print("6. Modulo (%)")
    print("0. Quitter")
    print("="*40)

def obtenir_nombre(message):
    """Demande un nombre a l'utilisateur avec validation"""
    while True:
        try:
            return float(input(message))
        except ValueError:
            print("Erreur: Veuillez entrer un nombre valide !")

def calculer():
    """Fonction principale de la calculatrice"""
    operations = {
        "1": ("Addition", addition),
        "2": ("Soustraction", soustraction),
        "3": ("Multiplication", multiplication),
        "4": ("Division", division),
        "5": ("Puissance", puissance),
        "6": ("Modulo", modulo)
    }

    continuer = True
    while continuer:
        afficher_menu()
        choix = input("\nVotre choix (0-6) : ")

        if choix == "0":
            print("\nMerci d'avoir utilise la calculatrice !")
            continuer = False
        elif choix in operations:
            nom, fonction = operations[choix]
            print(f"\n--- {nom} ---")
            a = obtenir_nombre("Premier nombre : ")
            b = obtenir_nombre("Deuxieme nombre : ")
            resultat = fonction(a, b)
            print(f"\nResultat : {a} {nom.lower()} {b} = {resultat}")
        else:
            print("Choix invalide ! Veuillez reessayer.")

# Lancement de la calculatrice
# calculer()  # Decommente pour tester !

# Demo avec valeurs predefinies
print("=== DEMO CALCULATRICE ===")
print(f"5 + 3 = {addition(5, 3)}")
print(f"10 - 4 = {soustraction(10, 4)}")
print(f"6 * 7 = {multiplication(6, 7)}")
print(f"15 / 4 = {division(15, 4)}")
print(f"2 ** 8 = {puissance(2, 8)}")
print(f"17 % 5 = {modulo(17, 5)}")

Quiz de validation

1. Quelle est la premiere etape pour creer un projet ?

2. Pourquoi utiliser des fonctions dans un projet ?

3. Que tester en priorite dans un programme ?

4. Comment gerer une entree utilisateur invalide ?

5. Quel est l'avantage de sauvegarder dans un fichier ?

Pixel