Präse eingefügt
parent
e1a43fac2e
commit
06b0a2039b
Binary file not shown.
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
In der Datei _list_comprehension_ ist eine Liste _artikel_ mit Daten von Supermarktartikeln
|
In der Datei _list_comprehension_ ist eine Liste _artikel_ mit Daten von Supermarktartikeln
|
||||||
```python
|
```python
|
||||||
artikel = [
|
produkte = [
|
||||||
{"artikel": "Quark", "stueckzahl": 18, "price": 1.59, "verfallsdatum": "2026-06-25", "lieferant": "Frisch-Milch AG", "lagerplatz": "Kühlregal 1"},
|
{"artikel": "Quark", "stueckzahl": 18, "price": 1.59, "verfallsdatum": "2026-06-25", "lieferant": "Frisch-Milch AG", "lagerplatz": "Kühlregal 1"},
|
||||||
{...}, ...
|
{...}, ...
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
class Einkaufswagen:
|
||||||
|
def __init__(self, kunde, itemList):
|
||||||
|
self.kunde = kunde
|
||||||
|
self.itemList = itemList
|
||||||
|
|
||||||
|
def __mul__(self, n):
|
||||||
|
return Einkaufswagen(self.kunde, self.itemList * n)
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return f"{self.kunde} : {self.itemList}"
|
||||||
|
|
||||||
|
|
||||||
|
ew1 = Einkaufswagen("Karl", ["Brot", "Milch"])
|
||||||
|
ew2 = ew1 * 2
|
||||||
|
print(ew2)
|
||||||
|
|
@ -1,6 +1,22 @@
|
||||||
import time
|
import time
|
||||||
|
|
||||||
|
|
||||||
|
def cache(func):
|
||||||
|
cache_dict = {}
|
||||||
|
|
||||||
|
def wrapper(*args):
|
||||||
|
if args[0] in cache_dict:
|
||||||
|
print("Gehalt vom Cache gehlot")
|
||||||
|
return cache_dict[args[0]]
|
||||||
|
else:
|
||||||
|
print("Gehalt wird gerechnet...")
|
||||||
|
result = func(args[0])
|
||||||
|
cache_dict[args[0]] = result
|
||||||
|
return result
|
||||||
|
return wrapper
|
||||||
|
|
||||||
|
|
||||||
|
@cache
|
||||||
def gehalt(name):
|
def gehalt(name):
|
||||||
# Komplexe Berechnung
|
# Komplexe Berechnung
|
||||||
time.sleep(3)
|
time.sleep(3)
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,17 @@
|
||||||
artikel = [
|
from datetime import datetime
|
||||||
{"artikel": "Quark", "stueckzahl": 18, "price": 1.59, "verfallsdatum": "2026-06-25",
|
heute = datetime.now().strftime("%Y-%m-%d")
|
||||||
|
produkte = [
|
||||||
|
{"artikel": "Quark", "stueckzahl": 18, "price": 1.59, "verfallsdatum": "2026-06-22",
|
||||||
"lieferant": "Frisch-Milch AG", "lagerplatz": "Kühlregal 1"},
|
"lieferant": "Frisch-Milch AG", "lagerplatz": "Kühlregal 1"},
|
||||||
{"artikel": "Eier", "stueckzahl": 30, "price": 3.29, "verfallsdatum": "2026-06-17",
|
{"artikel": "Eier", "stueckzahl": 30, "price": 3.29, "verfallsdatum": "2026-06-17",
|
||||||
"lieferant": "Bio-Hof Müller", "lagerplatz": "Kühlregal 2"},
|
"lieferant": "Bio-Hof Müller", "lagerplatz": "Kühlregal 2"},
|
||||||
{"artikel": "Fleischwurst", "stueckzahl": 10, "price": 2.89, "verfallsdatum": "2026-06-15",
|
{"artikel": "Fleischwurst", "stueckzahl": 10, "price": 2.89, "verfallsdatum": "2026-08-23",
|
||||||
"lieferant": "Wurstwaren Huber", "lagerplatz": "Kühlregal 3"},
|
"lieferant": "Wurstwaren Huber", "lagerplatz": "Kühlregal 3"},
|
||||||
{"artikel": "Milch", "stueckzahl": 20, "price": 1.49, "verfallsdatum": "2026-06-16",
|
{"artikel": "Milch", "stueckzahl": 20, "price": 1.49, "verfallsdatum": "2026-06-23",
|
||||||
"lieferant": "Molkerei Süd", "lagerplatz": "Kühlregal 1"},
|
"lieferant": "Molkerei Süd", "lagerplatz": "Kühlregal 1"},
|
||||||
{"artikel": "Reis", "stueckzahl": 40, "price": 1.99, "verfallsdatum": "2027-01-01",
|
{"artikel": "Reis", "stueckzahl": 40, "price": 1.99, "verfallsdatum": "2026-05-01",
|
||||||
"lieferant": "Global Import GmbH", "lagerplatz": "Regal A4"},
|
"lieferant": "Global Import GmbH", "lagerplatz": "Regal A4"},
|
||||||
{"artikel": "Joghurt", "stueckzahl": 25, "price": 0.99, "verfallsdatum": "2026-06-16",
|
{"artikel": "Joghurt", "stueckzahl": 25, "price": 0.99, "verfallsdatum": "2026-07-23",
|
||||||
"lieferant": "Molkerei Süd", "lagerplatz": "Kühlregal 1"},
|
"lieferant": "Molkerei Süd", "lagerplatz": "Kühlregal 1"},
|
||||||
{"artikel": "Salami", "stueckzahl": 22, "price": 3.99, "verfallsdatum": "2026-07-02",
|
{"artikel": "Salami", "stueckzahl": 22, "price": 3.99, "verfallsdatum": "2026-07-02",
|
||||||
"lieferant": "Wurstwaren Huber", "lagerplatz": "Kühlregal 3"},
|
"lieferant": "Wurstwaren Huber", "lagerplatz": "Kühlregal 3"},
|
||||||
|
|
@ -17,6 +19,9 @@ artikel = [
|
||||||
"lieferant": "Molkerei Süd", "lagerplatz": "Kühlregal 2"},
|
"lieferant": "Molkerei Süd", "lagerplatz": "Kühlregal 2"},
|
||||||
{"artikel": "Butter", "stueckzahl": 40, "price": 2.29, "verfallsdatum": "2026-08-05",
|
{"artikel": "Butter", "stueckzahl": 40, "price": 2.29, "verfallsdatum": "2026-08-05",
|
||||||
"lieferant": "Molkerei Süd", "lagerplatz": "Kühlregal 2"},
|
"lieferant": "Molkerei Süd", "lagerplatz": "Kühlregal 2"},
|
||||||
{"artikel": "Käse", "stueckzahl": 15, "price": 4.99, "verfallsdatum": "2026-06-17",
|
{"artikel": "Käse", "stueckzahl": 15, "price": 4.99, "verfallsdatum": "2026-06-24",
|
||||||
"lieferant": "Käsemanufaktur", "lagerplatz": "Kühlregal 1"}
|
"lieferant": "Käsemanufaktur", "lagerplatz": "Kühlregal 1"}
|
||||||
]
|
]
|
||||||
|
abgelaufen = [(item["artikel"], item["lagerplatz"])
|
||||||
|
for item in produkte if item["verfallsdatum"] <= heute]
|
||||||
|
print(abgelaufen)
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,53 @@
|
||||||
|
# 1. Decorator: Loggt die Ausführung der Fusion
|
||||||
|
def log_merger(func):
|
||||||
|
def wrapper(*args, **kwargs):
|
||||||
|
print("[SYSTEM LOG]: Initiating merger...")
|
||||||
|
# WICHTIG: Das Ergebnis der ursprünglichen Funktion muss zurückgegeben werden
|
||||||
|
return func(*args, **kwargs)
|
||||||
|
return wrapper
|
||||||
|
|
||||||
|
|
||||||
|
class Abteilung:
|
||||||
|
def __init__(self, name, budget, mitarbeiter):
|
||||||
|
self.name = name
|
||||||
|
self.budget = budget
|
||||||
|
# mitarbeiter ist ein Dictionary: {"Name": "Rolle"}
|
||||||
|
self.mitarbeiter = mitarbeiter
|
||||||
|
|
||||||
|
# 2. Magic Method __add__: Definiert das Verhalten beim '+' Operator
|
||||||
|
@log_merger
|
||||||
|
def __add__(self, other):
|
||||||
|
# Namen kombinieren und Budgets addieren
|
||||||
|
neuer_name = f"{self.name} & {other.name}"
|
||||||
|
neues_budget = self.budget + other.budget
|
||||||
|
|
||||||
|
# Beide Dictionaries zusammenfügen (Unpacking)
|
||||||
|
combined = {**self.mitarbeiter, **other.mitarbeiter}
|
||||||
|
|
||||||
|
# Dictionary Comprehension mit if-Bedingung:
|
||||||
|
# Fügt alle Mitarbeiter hinzu, außer diejenigen mit der Rolle "Intern"
|
||||||
|
neue_mitarbeiter = {name: role for name,
|
||||||
|
role in combined.items() if role != "Praktikant"}
|
||||||
|
return Abteilung(neuer_name, neues_budget, neue_mitarbeiter)
|
||||||
|
|
||||||
|
# 3. Magic Method __str__: Definiert die Textausgabe bei print(objekt)
|
||||||
|
def __str__(self):
|
||||||
|
return f"Abteilung: {self.name} | Budget: {self.budget}€ | mitarbeiter: {len(self.mitarbeiter)}"
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
# Zwei Abteilungen mit Dictionaries erstellen
|
||||||
|
it_abteilung = Abteilung(
|
||||||
|
"IT", 50000, {"Anton": "Developer", "Barbara": "Projektmanagerin", "Carl": "Praktikant"})
|
||||||
|
design_abteilung = Abteilung(
|
||||||
|
"Design", 30000, {"David": "Designer", "Eva": "Praktikant", "Felix": "Abteilungsleiter"})
|
||||||
|
|
||||||
|
# Fusion durchführen (Ruft log_merger und __add__ auf)
|
||||||
|
merged_abteilung = it_abteilung + design_abteilung
|
||||||
|
|
||||||
|
# Ergebnisse ausgeben
|
||||||
|
print("------------------")
|
||||||
|
print(merged_abteilung) # Ruft __str__ auf
|
||||||
|
print("Final mitarbeiter List:")
|
||||||
|
for name, role in merged_abteilung.mitarbeiter.items():
|
||||||
|
print(f"- {name}: {role}")
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
class Einkaufswagen:
|
||||||
|
def __init__(self, kunde, items):
|
||||||
|
self.kunde = kunde
|
||||||
|
self.items = items # items ist eine Liste
|
||||||
|
|
||||||
|
def __mul__(self, zahl):
|
||||||
|
return Einkaufswagen(self.kunde, self.items * zahl)
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return f"{self.kunde} : {self.items}"
|
||||||
|
|
||||||
|
|
||||||
|
ew1 = Einkaufswagen("Sam", ["Milche", "Brot"])
|
||||||
|
ew2 = ew1 * 3
|
||||||
|
print(ew2)
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
import time
|
||||||
|
|
||||||
|
|
||||||
|
def cache(func):
|
||||||
|
cache_dict = {}
|
||||||
|
|
||||||
|
def wrapper(*mamamia, **kwmamamia):
|
||||||
|
if mamamia in cache_dict:
|
||||||
|
print("Ergebnis aus dem Cache geladen!")
|
||||||
|
return cache_dict[mamamia]
|
||||||
|
else:
|
||||||
|
print("Ergebnis wird berechnet ...")
|
||||||
|
result = func(*mamamia, **kwmamamia)
|
||||||
|
cache_dict[mamamia] = result
|
||||||
|
return result
|
||||||
|
return wrapper
|
||||||
|
|
||||||
|
|
||||||
|
@cache
|
||||||
|
def gehalt(name):
|
||||||
|
# Komplexe Berechnung
|
||||||
|
time.sleep(3)
|
||||||
|
return 3000
|
||||||
|
|
@ -0,0 +1,26 @@
|
||||||
|
from datetime import datetime
|
||||||
|
today = datetime.now().strftime("%Y-%m-%d")
|
||||||
|
artikel = [
|
||||||
|
{"artikel": "Quark", "stueckzahl": 18, "price": 1.59, "verfallsdatum": "2026-06-25",
|
||||||
|
"lieferant": "Frisch-Milch AG", "lagerplatz": "Kühlregal 1"},
|
||||||
|
{"artikel": "Eier", "stueckzahl": 30, "price": 3.29, "verfallsdatum": "2026-06-17",
|
||||||
|
"lieferant": "Bio-Hof Müller", "lagerplatz": "Kühlregal 2"},
|
||||||
|
{"artikel": "Fleischwurst", "stueckzahl": 10, "price": 2.89, "verfallsdatum": "2026-06-15",
|
||||||
|
"lieferant": "Wurstwaren Huber", "lagerplatz": "Kühlregal 3"},
|
||||||
|
{"artikel": "Milch", "stueckzahl": 20, "price": 1.49, "verfallsdatum": "2026-06-16",
|
||||||
|
"lieferant": "Molkerei Süd", "lagerplatz": "Kühlregal 1"},
|
||||||
|
{"artikel": "Reis", "stueckzahl": 40, "price": 1.99, "verfallsdatum": "2027-01-01",
|
||||||
|
"lieferant": "Global Import GmbH", "lagerplatz": "Regal A4"},
|
||||||
|
{"artikel": "Joghurt", "stueckzahl": 25, "price": 0.99, "verfallsdatum": "2026-06-16",
|
||||||
|
"lieferant": "Molkerei Süd", "lagerplatz": "Kühlregal 1"},
|
||||||
|
{"artikel": "Salami", "stueckzahl": 22, "price": 3.99, "verfallsdatum": "2026-07-02",
|
||||||
|
"lieferant": "Wurstwaren Huber", "lagerplatz": "Kühlregal 3"},
|
||||||
|
{"artikel": "Sahne", "stueckzahl": 12, "price": 1.29, "verfallsdatum": "2026-06-17",
|
||||||
|
"lieferant": "Molkerei Süd", "lagerplatz": "Kühlregal 2"},
|
||||||
|
{"artikel": "Butter", "stueckzahl": 40, "price": 2.29, "verfallsdatum": "2026-08-05",
|
||||||
|
"lieferant": "Molkerei Süd", "lagerplatz": "Kühlregal 2"},
|
||||||
|
{"artikel": "Käse", "stueckzahl": 15, "price": 4.99, "verfallsdatum": "2026-06-17",
|
||||||
|
"lieferant": "Käsemanufaktur", "lagerplatz": "Kühlregal 1"}
|
||||||
|
]
|
||||||
|
abgelaufene_artikel = [(x['artikel'], x['lagerplatz'])
|
||||||
|
for x in artikel if x['verfallsdatum'] <= today]
|
||||||
Loading…
Reference in New Issue