8.11.2024

This commit is contained in:
2024-11-08 13:23:30 +01:00
parent 02cabe1ce3
commit d1ed0d370b
9 changed files with 5574 additions and 3735 deletions

File diff suppressed because one or more lines are too long

View File

@@ -1,114 +1,114 @@
import os import os
class Product: class Product:
def __init__(self, name:str, price:float, menge:int=1): def __init__(self, name:str, price:float, menge:int=1):
self.name = name self.name = name
self.price = price self.price = price
self.menge = menge self.menge = menge
def __str__(self): def __str__(self):
return f"{self.name} ({self.price} €)" return f"{self.name} ({self.price} €)"
def __eq__(self, value: object) -> bool: def __eq__(self, value: object) -> bool:
if isinstance(value, Product): if isinstance(value, Product):
print(f"self.name: {self.name}, value.name: {value.name}, self.menge: {self.menge}, value.menge: {value.menge}, self.price: {self.price}, value.price: {value.price}") print(f"self.name: {self.name}, value.name: {value.name}, self.menge: {self.menge}, value.menge: {value.menge}, self.price: {self.price}, value.price: {value.price}")
return self.name == value.name and self.price == value.price return self.name == value.name and self.price == value.price
return False return False
def produkt_hinzufuegen(einkaufsliste:list[Product]): def produkt_hinzufuegen(einkaufsliste:list[Product]):
#Get User input #Get User input
name = input("Geben Sie den Namen des Produkts ein: ") name = input("Geben Sie den Namen des Produkts ein: ")
preis = float(input("Geben Sie den Preis des Produkts ein: ")) preis = float(input("Geben Sie den Preis des Produkts ein: "))
menge = int(input("Geben Sie die Menge des Produkts ein: ")) menge = int(input("Geben Sie die Menge des Produkts ein: "))
product = Product(name,preis,menge) product = Product(name,preis,menge)
#Add the product to the list #Add the product to the list
added = False added = False
for productold in einkaufsliste: for productold in einkaufsliste:
if productold == product: if productold == product:
einkaufsliste.remove(productold) einkaufsliste.remove(productold)
einkaufsliste.append(Product(product.name, product.price, product.menge+productold.menge)) einkaufsliste.append(Product(product.name, product.price, product.menge+productold.menge))
added = True added = True
if not added: if not added:
einkaufsliste.append(product) einkaufsliste.append(product)
print(f"{product.menge}x {name} wurde zur Einkaufsliste hinzugefügt") print(f"{product.menge}x {name} wurde zur Einkaufsliste hinzugefügt")
def einkaufsliste_entfernen(einkaufsliste:list[Product]): def einkaufsliste_entfernen(einkaufsliste:list[Product]):
#Get User input #Get User input
name = input("Geben Sie den Namen des zu entfernenden Produkts ein: ") name = input("Geben Sie den Namen des zu entfernenden Produkts ein: ")
#Remove the product from the list #Remove the product from the list
for product in einkaufsliste: for product in einkaufsliste:
if product.name == name: if product.name == name:
einkaufsliste.remove(product) einkaufsliste.remove(product)
print(f"{name} wurde von der Einkaufsliste entfernt") print(f"{name} wurde von der Einkaufsliste entfernt")
return return
print(f"{name} konnte nicht gefunden werden") print(f"{name} konnte nicht gefunden werden")
def einkaufsliste_anzeigen(einkaufsliste:list[Product]): def einkaufsliste_anzeigen(einkaufsliste:list[Product]):
if not einkaufsliste: if not einkaufsliste:
print("Einkaufsliste ist leer") print("Einkaufsliste ist leer")
return return
print("Einkaufsliste:") print("Einkaufsliste:")
print("*"*20) print("*"*20)
for product in einkaufsliste: for product in einkaufsliste:
print(f"{product.menge}x {product.name} zu je {product.price}") print(f"{product.menge}x {product.name} zu je {product.price}")
def einkaufsliste_speichern(einkaufsliste:list[Product], dateiname:str): def einkaufsliste_speichern(einkaufsliste:list[Product], dateiname:str):
with open(dateiname, "w") as file: with open(dateiname, "w") as file:
for product in einkaufsliste: for product in einkaufsliste:
file.write(f"{product.name};{product.price};{product.menge}\n") file.write(f"{product.name};{product.price};{product.menge}\n")
print("Einkaufsliste wurde gespeichert") print("Einkaufsliste wurde gespeichert")
def einkaufsliste_laden(einkaufsliste:list[Product], dateiname:str): def einkaufsliste_laden(einkaufsliste:list[Product], dateiname:str):
try: try:
with open(dateiname, "r") as file: with open(dateiname, "r") as file:
for line in file: for line in file:
name, price, menge = line.strip().split(";") name, price, menge = line.strip().split(";")
einkaufsliste.append(Product(name, float(price), int(menge))) einkaufsliste.append(Product(name, float(price), int(menge)))
print(f"Einkaufsliste wurde aus {dateiname} geladen") print(f"Einkaufsliste wurde aus {dateiname} geladen")
except FileNotFoundError: except FileNotFoundError:
print("Einkaufsliste konnte nicht geladen werden, da die Datei nicht gefunden wurde") print("Einkaufsliste konnte nicht geladen werden, da die Datei nicht gefunden wurde")
return einkaufsliste return einkaufsliste
def einkaufsliste_loeschen(einkaufsliste:list[Product], dateiname:str): def einkaufsliste_loeschen(einkaufsliste:list[Product], dateiname:str):
einkaufsliste.clear() einkaufsliste.clear()
if os.path.exists(dateiname): if os.path.exists(dateiname):
os.remove(dateiname) os.remove(dateiname)
print("Datei {dateiname} wurde gelöscht") print("Datei {dateiname} wurde gelöscht")
print("Einkaufsliste wurde gelöscht") print("Einkaufsliste wurde gelöscht")
def start(): def start():
einkaufsliste = [] einkaufsliste = []
dateiname = "einkaufsliste.txt" dateiname = "einkaufsliste.txt"
while True: while True:
print("Was möchten Sie tun?") print("Was möchten Sie tun?")
print("1: Produkt hinzufügen") print("1: Produkt hinzufügen")
print("2: Produkt entfernen") print("2: Produkt entfernen")
print("3: Einkaufsliste anzeigen") print("3: Einkaufsliste anzeigen")
print("4: Einkaufsliste speichern") print("4: Einkaufsliste speichern")
print("5: Einkaufsliste laden") print("5: Einkaufsliste laden")
print("6: Einkaufsliste löschen") print("6: Einkaufsliste löschen")
print("7: Programm beenden") print("7: Programm beenden")
auswahl = int(input("Ihre Auswahl: ")) auswahl = int(input("Ihre Auswahl: "))
if auswahl == 1: if auswahl == 1:
produkt_hinzufuegen(einkaufsliste) produkt_hinzufuegen(einkaufsliste)
elif auswahl == 2: elif auswahl == 2:
einkaufsliste_entfernen(einkaufsliste) einkaufsliste_entfernen(einkaufsliste)
elif auswahl == 3: elif auswahl == 3:
einkaufsliste_anzeigen(einkaufsliste) einkaufsliste_anzeigen(einkaufsliste)
elif auswahl == 4: elif auswahl == 4:
einkaufsliste_speichern(einkaufsliste, dateiname) einkaufsliste_speichern(einkaufsliste, dateiname)
elif auswahl == 5: elif auswahl == 5:
einkaufsliste = einkaufsliste_laden(einkaufsliste, dateiname) einkaufsliste = einkaufsliste_laden(einkaufsliste, dateiname)
elif auswahl == 6: elif auswahl == 6:
einkaufsliste_loeschen(einkaufsliste, dateiname) einkaufsliste_loeschen(einkaufsliste, dateiname)
elif auswahl == 7: elif auswahl == 7:
break break
else: else:
print(auswahl) print(auswahl)
print("Ungültige Eingabe") print("Ungültige Eingabe")
if __name__ == "__main__": if __name__ == "__main__":
start() start()

View File

@@ -1,9 +1,9 @@
class Animal: class Animal:
def __init__(self, name): def __init__(self, name):
self.name = name self.name = name
def speak(self): def speak(self):
return f'{self.name} says something' return f'{self.name} says something'
class Dog(Animal): class Dog(Animal):
def speak(self): def speak(self):
return f'{self.name} barks' return f'{self.name} barks'

View File

@@ -1 +1 @@
ab;1.0;1 ab;1.0;1

File diff suppressed because it is too large Load Diff

View File

@@ -233,11 +233,23 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 15, "execution_count": 1,
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [
{
"ename": "NameError",
"evalue": "name 'titanic' is not defined",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[1;32mIn[1], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m agg_df \u001b[38;5;241m=\u001b[39m \u001b[43mtitanic\u001b[49m\u001b[38;5;241m.\u001b[39magg([\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mcount\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124msize\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mnunique\u001b[39m\u001b[38;5;124m'\u001b[39m])\n",
"\u001b[1;31mNameError\u001b[0m: name 'titanic' is not defined"
]
}
],
"source": [ "source": [
"agg_df = titanic.agg(['count', 'size', 'nunique'])" "agg_df = titanic.agg(['age: count', 'size', 'nunique'])"
] ]
}, },
{ {

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff