Ich hab vor kurzem "A Byte of Python" gelesen, und dort wird empfohlen ein adressbuch zu schreiben.
Ich hab es jetzt mal rein prozentual geschrieben, es funktioniert soweit auch ganz gut ich kann: kontake hinzufügen, löschen und suchen.
Und ich wollte fragen ob es Sinn macht das ganze jetzt in oop zu schreiben.
Das Problem ist das ich dieses ganze Konzept dahinter irgendwie nicht richtig verstehe.
Kann man auch ohne Klassen GUIs wie z.B. mit PyQt schreiben oder wird das dann zu kompliziert?
hier mal der code:
Code: Alles auswählen
#!/usr/bin/python3
import pickle
def eingabe():
try:
f = open('kontakte.data', 'rb')
kontakt = pickle.load(f)
except:
kontakt = {}
name = input('Geben Sie einen Namen ein: ')
nummer = input('Geben Sie eine Telefonnummer ein: ')
email = input('Geben Sie eine Email-Adresse ein: ')
daten = (nummer, email)
kontakt[name] = daten
f = open('kontakte.data', 'wb')
pickle.dump(kontakt, f)
f.close()
def ausgabe():
try:
f = open('kontakte.data', 'rb')
gespDict = pickle.load(f)
except:
print('Kein Kontakt vorhanden')
else:
print('')
print('NAME NUMMER EMAIL')
print('----------------------------------------')
for name, daten in gespDict.items():
print(name, daten[0], daten[1])
def suche():
try:
f = open('kontakte.data', 'rb')
gespDict = pickle.load(f)
except:
print('Kein Kontakt vorhanden')
else:
name = input('Geben sie den zu suchenden Namen ein: ')
if name in gespDict:
print('Kontakt gefunden!')
print('--------------------------')
print('Nummer:', gespDict[name][0])
print('Email:', gespDict[name][1])
else:
print('Kontakt nicht gefunden!')
def loeschen():
try:
f = open('kontakte.data', 'rb')
gespDict = pickle.load(f)
except:
print('Kein Kontakt vorhanden')
else:
name = input('Geben sie den zu loeschenden Namen ein: ')
if name in gespDict:
print('Kontakt gelöscht!')
del gespDict[name]
f = open('kontakte.data', 'wb')
pickle.dump(gespDict, f)
f.close()
else:
print('Kontakt nicht gefunden!')
while True:
print('''
******MENÜ******
eingabe = e
ausgabe = a
suche = s
loeschen = l
beenden = q''')
menu = input(': ')
if menu == 'e':
eingabe()
elif menu == 'a':
ausgabe()
elif menu == 's':
suche()
elif menu == 'l':
loeschen()
elif menu == 'q':
break
else:
print('Ungueltige Eingabe!')