Bericht generieren
Teil des Abschnitts Logik und Ablaufsteuerung der Python-Journey von Coddy. Lektion 71 von 78.
Aufgabe
SchwerDas Inventarsystem verfügt bereits über diese implementierten Komponenten:
- Ein globales
inventory-Wörterbuch, wobei:- Die Schlüssel Artikelnamen (Zeichenketten) sind
- Die Werte Wörterbücher sind, die Folgendes enthalten:
"price": Der Preis des Artikels (Gleitkommazahl)"stock": Die aktuelle Lagerbestandsmenge (Ganzzahl)
- 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
Deine Aufgabe ist es, die Funktion sales_report(sales) zu implementieren, die:
- Ein
sales-Wörterbuch entgegennimmt, wobei:- Die Schlüssel Artikelnamen sind
- Die Werte verkaufte Mengen sind
- Für jeden Artikel im Verkaufswörterbuch:
- Prüft, ob der Artikel im Inventar existiert
- Prüft, ob ausreichend Bestand vorhanden ist
- Das Inventar aktualisiert, indem die Lagerbestände reduziert werden
- Den Umsatz anhand des Preises und der verkauften Menge berechnet
- Eine formatierte Zeichenkette mit dem Gesamtumsatz zurückgibt
Behandle diese spezifischen Fehler:
- Wenn ein Artikel nicht im Inventar existiert, gib Folgendes aus:
"Error: Item '{item}' not found." - Wenn der Bestand nicht ausreicht, gib Folgendes aus:
"Error: Insufficient stock for '{item}'."
Die Ausgabe sollte als Zeichenkette im folgenden Format vorliegen: “Total revenue: ${total:.2f}”
Füge den folgenden Codeblock am Ende deines Codes hinzu (und ersetze den vorhandenen):
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 Logik und Ablaufsteuerung
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Übe selbstständig: Online-Python-Compiler