Menu
CoddyTech

Récapitulatif - Erreurs dans le panier

Fait partie de la section Logique et flux du Journey Python de Coddy. Leçon 66 sur 78.

challenge icon

Défi

Moyen

Crée un programme qui simule un panier d’achat avec gestion des erreurs. Ta tâche consiste à :

  1. Créer une fonction appelée handle_shopping_cart qui traite les commandes des clients
  2. La fonction doit accepter une liste de chaînes de commande au format "item:quantity"
  3. Traiter chaque commande en :
    • Séparant la chaîne d’entrée pour obtenir l’article et la quantité
    • Convertissant la quantité en entier
    • Ajoutant l’article à un dictionnaire représentant le panier, avec la quantité comme valeur
    • Si un article existe déjà dans le panier, ajouter la nouvelle quantité à la quantité existante
  4. Gérer ces erreurs spécifiques :
    • Si le format d’entrée est incorrect (deux-points manquant), afficher "Invalid format: {order}"
    • Si la quantité n’est pas un nombre valide, afficher "Invalid quantity: {order}"
    • Si la quantité est négative, afficher "Negative quantity not allowed: {order}"
  5. Renvoyer le dictionnaire du panier complété

Vérifie le format et la quantité négative avec un if. Seule la conversion de la quantité en entier peut provoquer une erreur ; c’est donc dans le bloc except ValueError que "Invalid quantity: {order}" est affiché. Garde le dernier bloc except Exception as e comme filet de sécurité et affiche "Unexpected error: {e}" à cet endroit.

Essayez vous-même

def handle_shopping_cart(orders):
    # Créer un dictionnaire vide pour le panier
    cart = {}

    # Traiter chaque commande de la liste
    for order in orders:
        try:
            # Décomposer la commande, vérifier le format et la quantité, puis l’ajouter au panier
            pass

        except ValueError:
            # La quantité n’était pas un nombre
            pass

        except Exception as e:
            # Tout événement inattendu
            pass

    # Renvoyer le panier rempli
    return cart

Toutes les leçons de Logique et flux

Entraînez-vous par vous-même : Compilateur Python en ligne