Menu
Coddy logo textTech

Bericht generieren

Teil des Abschnitts Logic & Flow der Python-Journey von Coddy — Lektion 71 von 78.

challenge icon

Aufgabe

Schwer

Das Inventarsystem verfügt bereits über diese implementierten Komponenten:

  1. Ein globales inventory-Dictionary, in dem:
    • Schlüssel Artikelnamen sind (Strings)
    • Werte Dictionaries sind, die Folgendes enthalten:
      • "price": Der Preis des Artikels (Float)
      • "stock": Aktuelle Menge auf Lager (Integer)
  2. Eine add_item(item, price, stock)-Funktion, die neue Artikel zum Inventar hinzufügt
  3. Eine update_stock(item, quantity)-Funktion, die den Lagerbestand aktualisiert
  4. Eine check_availability(item)-Funktion, die den aktuellen Lagerbestand zurückgibt

Ihre Aufgabe ist es, die Funktion sales_report(sales) zu implementieren, die:

  1. Ein sales-Dictionary entgegennimmt, in dem:
    • Schlüssel Artikelnamen sind
    • Werte die verkauften Mengen sind
  2. Für jeden Artikel im Sales-Dictionary:
    • Prüft, ob der Artikel im Inventar existiert
    • Prüft, ob genügend Lagerbestand vorhanden ist
    • Das Inventar durch Reduzierung der Lagerbestände aktualisiert
    • Den Umsatz basierend auf Preis und verkaufter Menge berechnet
  3. Einen formatierten String mit dem Gesamtumsatz zurückgibt

Behandeln Sie diese spezifischen Fehler:

  • Wenn ein Artikel nicht im Inventar existiert, geben Sie aus: "Error: Item '{item}' not found."
  • Wenn nicht genügend Lagerbestand vorhanden ist, geben Sie aus: "Error: Insufficient stock for '{item}'."

Die Ausgabe sollte ein String sein, der wie folgt formatiert ist: “Total revenue: ${total:.2f}”

 

Fügen Sie den folgenden Codeblock am Ende Ihres Codes hinzu (bzw. ersetzen Sie ihn):

add_item("Apple", 0.5, 50)
add_item("Banana", 0.2, 60)
sales = {"Apple": 30, "Banana": 20, "Orange": 10}  # Orange should print an error
print(sales_report(sales))  # Should output: Total revenue: $19.00
print(inventory)

Probier es selbst

inventory = {}

def add_item(item, price, stock):
    if item in inventory:
        print(f"Error: Item '{item}' already exists.")
        return
    try:
        inventory[item] = {"price": float(price), "stock": int(stock)}
        print(f"Item '{item}' added successfully.")
    except ValueError:
        print("Error: Price and stock must be numeric.")

def update_stock(item, quantity):
    if item not in inventory:
        print(f"Error: Item '{item}' not found.")
        return
    try:
        new_stock = inventory[item]["stock"] + int(quantity)
        if new_stock < 0:
            print(f"Error: Insufficient stock for '{item}'.")
        else:
            inventory[item]["stock"] = new_stock
            print(f"Stock for '{item}' updated successfully.")
    except ValueError:
        print("Error: Quantity must be an integer.")

def check_availability(item):
    if item not in inventory:
        return "Item not found"
    return inventory[item]["stock"]


add_item("Apple", 0.5, 100)
add_item("Banana", 0.2, 50)
update_stock("Apple", -20)
update_stock("Banana", 30)
print(check_availability("Apple"))  # Should return 80
print(check_availability("Banana"))  # Should return 80
print(check_availability("Orange"))  # Should return "Item not found"

Alle Lektionen in Logic & Flow