Récapitulatif - Erreurs dans le panier
Fait partie de la section Logique et flux du Journey Python de Coddy. Leçon 66 sur 78.
Défi
MoyenCrée un programme qui simule un panier d’achat avec gestion des erreurs. Ta tâche consiste à :
- Créer une fonction appelée
handle_shopping_cartqui traite les commandes des clients - La fonction doit accepter une liste de chaînes de commande au format "item:quantity"
- 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
- 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}"
- 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 cartToutes les leçons de Logique et flux
1Exploration des variables
ConstantesAffectations multiples de variablesÉchange de variablesVariables de remplacementArrondir les nombresConversion en liste4Application de carnet de contacts
Afficher le menuAjouter un contact7Ensembles, partie 2
Opérations mathématiques, partie 1Opérations mathématiques, partie 2Révision - Chasse au trésorSous-ensembles et sur-ensemblesParcourir les ensemblesRévision - Suivi du tournoi10Compréhensions de liste de base
La syntaxeCréer des listes simplesAjouter des conditionsUtiliser l’agrégation de donnéesRécapitulatif - La maison des listesRécapitulatif - Les éléments de la liberté13Système de gestion des stocks
Présentation du projetAjouter un article2Dictionnaires, partie 1
Qu’est-ce qu’un dictionnaire ?Créer un dictionnaireAccéder aux valeursModifier des dictionnairesRécapitulatif – Gestionnaire de recettes5Prise de décision avancée
Opérateur ternaireVérifier l’appartenanceVérifier l’identitéErreurs d’indentationRécapitulatif – Filtre de vacances8Gestionnaire des dossiers étudiants
Présentation du projetAjouter un étudiant11Fonctions avancées
Retourner plusieurs valeursFonctions lambda, partie 1Fonctions lambda, partie 2Défi récapitulatif - Tri avec lambdaFonctions récursives, partie 1Fonctions récursives, partie 2Récapitulatif - Somme d’une liste imbriquée14Fonctions d’ordre supérieur
La fonction mapLa fonction filterRécapitulatif - Validateur d’e-mailsRécapitulatif - Traitement de nombres3Dictionnaires, partie 2
Méthodes des dictionnairesDictionnaires imbriquésVérifier la présence de clésParcourir les dictionnairesRécapitulatif - Compteur de fréquences6Ensembles, partie 1
Qu’est-ce qu’un ensemble ?Opérations de baseMéthodes des ensemblesRécapitulatif - Supprimer les doublons9Agrégation avancée de données
Utiliser la sommeTrouver le minimum et le maximumTrier les données efficacementRécapitulatif - Trieur de dictionnaires12Gestion de base des erreurs
Qu’est-ce que la gestion des erreurs ?Le bloc try et exceptGérer plusieurs exceptionsRécapitulatif - Erreurs dans le panierEntraînez-vous par vous-même : Compilateur Python en ligne