Bericht generieren
Teil des Abschnitts Logic & Flow der Python-Journey von Coddy — Lektion 71 von 78.
Aufgabe
SchwerDas Inventarsystem verfügt bereits über diese implementierten Komponenten:
- 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)
- Eine
add_item(item, price, stock)-Funktion, die neue Artikel zum Inventar hinzufügt - Eine
update_stock(item, quantity)-Funktion, die den Lagerbestand aktualisiert - Eine
check_availability(item)-Funktion, die den aktuellen Lagerbestand zurückgibt
Ihre Aufgabe ist es, die Funktion sales_report(sales) zu implementieren, die:
- Ein
sales-Dictionary entgegennimmt, in dem:- Schlüssel Artikelnamen sind
- Werte die verkauften Mengen sind
- 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
- 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
1Variablen-Erkundung
KonstantenMehrfache VariablenzuweisungenVariablen tauschenPlatzhalter-VariablenZahlen rundenListen-Casting4Kontaktbuch-Anwendung
Menü anzeigenKontakt hinzufügen7Sets Teil 2
Mathematische Operationen Teil 1Mathematische Operationen Teil 2Rückblick – SchatzsucheTeilmengen und ObermengenIterieren über SetsRückblick – Turnier-Tracker10Grundlagen der List Comprehensions
Die SyntaxEinfache Listen erstellenBedingungen hinzufügenDatenaggregation nutzenRückblick - House Of ListsRückblick - Elements Of Freedom13Bestandsverwaltungssystem
ProjektübersichtArtikel hinzufügen2Dictionaries Teil 1
Was ist ein Dictionary?Ein Dictionary erstellenZugriff auf WerteDictionaries ändernRückblick – Rezept-Manager5Fortgeschrittene Entscheidungsfindung
Ternärer OperatorZugehörigkeitsprüfungenIdentitätsprüfungenEinrückungsfehlerZusammenfassung - Urlaubsfilter8Studenten-Datenverwaltung
ProjektübersichtStudent hinzufügen11Fortgeschrittene Funktionen
Mehrere Werte zurückgebenLambda-Funktionen Teil 1Lambda-Funktionen Teil 2Recap Challenge – Lambda SortRekursive Funktionen Teil 1Rekursive Funktionen Teil 2Recap – Verschachtelte Listen summieren14Funktionen höherer Ordnung
Die Map-FunktionDie Filter-FunktionWiederholung – E-Mail-ValidatorWiederholung – Zahlenprozessor3Dictionaries Teil 2
Dictionary-MethodenVerschachtelte DictionariesKeys überprüfenDictionaries durchlaufenZusammenfassung – Häufigkeitszähler9Fortgeschrittene Datenaggregation
Verwendung von SumMinimum und Maximum findenDaten effizient sortierenRückblick - Dictionary Sorter12Grundlagen der Fehlerbehandlung
Was ist Fehlerbehandlung?Der Try- und Except-BlockBehandlung mehrerer ExceptionsRückblick – Warenkorb-Fehler