Podsumowanie – błędy w koszyku zakupowym
Część sekcji Logika i przepływ programu ścieżki Python w Coddy. Lekcja 66 z 78.
Wyzwanie
ŚredniUtwórz program symulujący koszyk zakupowy z obsługą błędów. Twoje zadanie:
- Utwórz funkcję o nazwie
handle_shopping_cart, która przetwarza zamówienia klientów - Funkcja powinna przyjmować listę ciągów znaków reprezentujących zamówienia w formacie "item:quantity"
- Przetwórz każde zamówienie, wykonując następujące czynności:
- Podziel ciąg wejściowy, aby uzyskać produkt i ilość
- Przekonwertuj ilość na liczbę całkowitą
- Dodaj produkt do słownika koszyka, używając ilości jako wartości
- Jeśli produkt znajduje się już w koszyku, dodaj nową ilość do istniejącej
- Obsłuż następujące konkretne błędy:
- Jeśli format wejściowy jest nieprawidłowy (brakuje dwukropka), wyświetl "Invalid format: {order}"
- Jeśli ilość nie jest prawidłową liczbą, wyświetl "Invalid quantity: {order}"
- Jeśli ilość jest ujemna, wyświetl "Negative quantity not allowed: {order}"
- Zwróć gotowy słownik koszyka zakupowego
Sprawdź format i ujemną ilość za pomocą if. Tylko konwersja ilości na liczbę całkowitą może wywołać błąd, dlatego w bloku except ValueError wyświetlany jest komunikat "Invalid quantity: {order}". Pozostaw ostatni blok except Exception as e jako zabezpieczenie i wyświetl w nim "Unexpected error: {e}".
Spróbuj swoich sił
def handle_shopping_cart(orders):
# Utwórz pusty słownik dla koszyka zakupowego
cart = {}
# Przetwórz każde zamówienie na liście
for order in orders:
try:
# Podziel zamówienie, sprawdź format i ilość, a następnie dodaj je do koszyka
pass
except ValueError:
# Ilość nie była liczbą
pass
except Exception as e:
# Cokolwiek nieoczekiwanego
pass
# Zwróć gotowy koszyk
return cartWszystkie lekcje w sekcji Logika i przepływ programu
1Odkrywanie zmiennych
StałeWielokrotne przypisania zmiennychZamiana zmiennychZmienne zastępczeZaokrąglanie liczbKonwersja na listę4Aplikacja książki kontaktów
Wyświetl menuDodaj kontakt7Zbiory — część 2
Działania matematyczne — część 1Działania matematyczne — część 2Powtórka — poszukiwanie skarbówPodzbiory i nadzbioryIterowanie po zbiorachPowtórka — śledzenie turnieju10Podstawowe składanie list
SkładniaTworzenie prostych listDodawanie warunkówUżywanie agregacji danychPowtórka – dom listPowtórka – elementy wolności13System zarządzania zapasami
Przegląd projektuDodawanie produktu2Słowniki — część 1
Czym jest słownik?Tworzenie słownikaDostęp do wartościModyfikowanie słownikówPowtórzenie — menedżer przepisów5Zaawansowane podejmowanie decyzji
Operator warunkowySprawdzanie przynależnościSprawdzanie tożsamościBłędy wcięćPowtórka — filtr wakacyjny8Menedżer rekordów uczniów
Przegląd projektuDodawanie ucznia11Zaawansowane funkcje
Zwracanie wielu wartościFunkcje lambda — część 1Funkcje lambda — część 2Wyzwanie podsumowujące — sortowanie z lambdaFunkcje rekurencyjne — część 1Funkcje rekurencyjne — część 2Podsumowanie — suma elementów zagnieżdżonej listy14Funkcje wyższego rzędu
Funkcja mapFunkcja filterPodsumowanie – walidator adresów e-mailPodsumowanie – procesor liczb3Słowniki, część 2
Metody słownikówZagnieżdżone słownikiSprawdzanie kluczyIterowanie po słownikachPowtórzenie — licznik częstotliwości9Zaawansowana agregacja danych
Używanie sumyZnajdowanie minimum i maksimumEfektywne sortowanie danychPowtórka – sortowanie słowników12Podstawowa obsługa błędów
Czym jest obsługa błędów?Blok try i exceptObsługa wielu wyjątkówPodsumowanie – błędy w koszyku zakupowymPoćwicz samodzielnie: Kompilator Python online