Code: Alles auswählen
import cPickle as p
personendatei = 'personenliste.data' # Datei in die, die Liste nachher gespeichert werden soll.
class Person:
'''Stellt eine Person da.'''
def __init__(self, name, alter, position, adresse):
self.name = name
self.alter = alter
self.position = position
self.adresse = adresse
print 'Person %s initialisiert' % self.name
def auskunft(self):
'''Gibt genauere Daten über die Person aus'''
print 'Name: "%s" Alter: "%s" Position: "%s" Adresse: "%s"' %(self.name, self.alter, self.position, self.adresse)
xyz = Person('xyz', 1, '?', '?')
efe = Person('efe', 1, '?', '?')
gtg = Person('gtg', 1, '?', '?')
# 'Ab' steht für 'A'dress'b'uch
ab = { 'xyz' : 'xyz@web.de' '12313',
'efe' : 'efe@arcor.de',
'gtg' : 'gtg@gmx.de',
}
f = file(personendatei, 'w')
p.dump(ab, f) #speichern der Liste
f.close()
del ab # lösche das Adressbuch
# Wieder einlesen des Adressbuches aus der Datei
f = file(personendatei)
gespeicherteliste = p.load(f)
print gespeicherteliste
print xyz.auskunft()
print efe.auskunft()
print gtg.auskunft()
Code: Alles auswählen
import cPickle as p
personendatei = 'personenliste.data' # Datei in die, die Liste nachher gespeichert werden soll.
class Person:
'''Stellt eine Person da.'''
def __init__(self, name, alter, position, adresse):
self.name = name
self.alter = alter
self.position = position
self.adresse = adresse
print 'Person %s initialisiert' % self.name
def auskunft(self):
'''Gibt genauere Daten über die Person aus'''
print 'Name: "%s" Alter: "%s" Position: "%s" Adresse: "%s"' %(self.name, self.alter, self.position, self.adresse)
bsp = Person('bsp', 1, 'xyz', 'uvw')
# 'Ab' steht für 'A'dress'b'uch
ab = { bsp : 'bsp@bsp.bsp'
}
f = file(personendatei, 'w')
p.dump(ab, f) #speichern der Liste
f.close()
del ab # Loeschen des Adressbuches
# Wieder einlesen des Adressbuches aus der Datei
f = file(personendatei)
gl = p.load(f) # GL steht fuer GespeicherteListe
def menu():
print 'Willkommen bei Ihrem Adressbuch! Druecken Sie die ...'
print '1 um das(komplette!) Adressbuch einzusehen'
print '2 um einen Namen im Adressbuch zu suchen'
print '3 um genauere Info´s ueber die Leute in Ihrem Adressbuch zu erhalten'
print '4 um das Menue nocheinmal anzuzeiegen'
print '5 um das Programm zu beenden'
option = 0
print menu()
while True:
option = input('Geben Sie nun bitte eine der Zahlen ein! ')
if option == 1:
if len(gl) >= 0:
for name, email in gl.items():
print '%s hat folgende E-Mail-Adresse: %s' % (name, email)
else:
print 'Das Adressbuch hat leider noch keine Eintraege'
elif option == 2:
suchname = raw_input('Geben Sie bitte den Namen ein, den Sie im Adressbuch suchen moechten: ')
if gl.has_key(suchname):
print '%s hat die E-Mail-Adresse %s' % (suchname, gl.suchname)
else:
print 'Name nicht im Adressbuch! Ueberpruefen Sie ggf. die Schreibweise!'
elif option == 3:
if len(gl) >= 0:
info_name = raw_input('Geben Sie den Namen ein zu dem Sie genaueres wissen wollen: ')
if info_name in gl:
info.name.auskunft()
else:
print 'Name nicht im Adressbuch! Ueberpruefen Sie ggf. die Schreibweise!'
else:
print 'Ihr Adressbuch hat leider noch keine Eintraege!'
elif option == 4:
print menu()
elif option == 5:
print 'Auf Wiedersehn!'
break
else:
print 'Nichtgültige Eingabe! Bitte waehlen Sie erneut!'
1. Immer wenn das Menü erscheint gibt´s unter Option 5 ein 'None'
2. Bei Option 1 wird immer '<__main__.Person instance at 0x00B845A8>' statt 'bsp' angezeigt
3. bei 2 kommt immer nur Name nicht im Adressbuch wenn ich nach Bsp suche... Ebenso bei 3
Alles in allem das einzigste was funktioniert ist Option 5 (die aber ausgezeichnet ) und 4, wenn auch mit einem unschoenen 'None'... Wäre nett wenn Ihr mir helfen könntet, weil mir macht´s schon Spaß... Aber ist auch frustrierend, wenn man nur "Hallo Welt!" schreiben kann und bei so etwas kapitulieren muss.... Also bitte helft mir!.....[/code]