Menu
Coddy logo textTech

Podsumowanie – błędy w koszyku zakupowym

Część sekcji Logika i przepływ programu ścieżki Python w Coddy. Lekcja 66 z 78.

challenge icon

Wyzwanie

Średni

Utwórz program symulujący koszyk zakupowy z obsługą błędów. Twoje zadanie:

  1. Utwórz funkcję o nazwie handle_shopping_cart, która przetwarza zamówienia klientów
  2. Funkcja powinna przyjmować listę ciągów znaków reprezentujących zamówienia w formacie "item:quantity"
  3. 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
  4. 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}"
  5. 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 cart

Wszystkie lekcje w sekcji Logika i przepływ programu

Poćwicz samodzielnie: Kompilator Python online