Adressbuch
Verfasst: Montag 9. Februar 2009, 02:47
Hallo Forum,
Ich habe heute das Buch "A Byte Of Python" zu Ende gelesen und versuche mich jetzt an dem Adressbuch-Aufgabe, welches am Ende des Buches vorgeschlagen wird.
Ich habe begonnen das Programm zu schreiben, doch tauchen einige Fragen auf, ohne deren Antwort ich nicht weiterkomme.
(IMHO fand ich dieses Buch schon viel logischer aufgebaut und mehr verständlich als das Openbook über Python, und empfand es als sehr gute Ergänzung zu diesem.)
Ich habe schon einen Thread mit ähnlichem Titel und Inhalt hier im Forum gelesen, doch fand ich den Programm-Code unnötig "sophisticated".
Lange Rede, kurzer Sinn. Hier ist mein Programm in der Version 1.00 :
Meine Frage:
Ich möchte, dass die Attribute der Klasse (korrigiert mich wenn ich Quark erzähle)
in das globale Dictionary d eingefügt werden. Ich weiß nicht so Recht wie ich das am Geschicktesten anstelle. Über Referenzen oder Tipps wäre ich sehr dankbar!
Anmerkungen
1.)Ich benutze hier bewusst eine Klasse, wobei ich glaube dass es prozedual für den jetzigen Zeitpunkt mehr "python-like" wäre (wobei ich mir bei der aktuellen Phase des Programms nicht sicher bin ob es wirklich einen Unterschied macht) und ich hinterher noch andere Funktionen wie Gruppen, etc. hinzufügen möchte.
2.) Der Inhalt der Datei der Variablen f ist natürlich völliger Käse.
3.) Ich habe diesmal versucht mehr PEP 8 konform zu schreiben. Ich hoffe das ist mir diesmal mehr gelungen wie in meinem anderen Programm.
Weiterhin freue ich mich über Antwort und Verbesserungsvorschläge!
Grüße,
KMachine
[/code]
Ich habe heute das Buch "A Byte Of Python" zu Ende gelesen und versuche mich jetzt an dem Adressbuch-Aufgabe, welches am Ende des Buches vorgeschlagen wird.
Ich habe begonnen das Programm zu schreiben, doch tauchen einige Fragen auf, ohne deren Antwort ich nicht weiterkomme.
(IMHO fand ich dieses Buch schon viel logischer aufgebaut und mehr verständlich als das Openbook über Python, und empfand es als sehr gute Ergänzung zu diesem.)
Ich habe schon einen Thread mit ähnlichem Titel und Inhalt hier im Forum gelesen, doch fand ich den Programm-Code unnötig "sophisticated".
Lange Rede, kurzer Sinn. Hier ist mein Programm in der Version 1.00 :
Code: Alles auswählen
#!/usr/bin/env python
import cPickle
'''Adressbuch-Skript Version: 1.00
Kurzbeschreibung:
Kommandozeilenbasiertes Adressbuch-Programm, mit dem man seine \
Kontakte und die dazugehoerigen Informationen wie Email-Adresse, Telefonnummer\
hinzufuegen, loeschen oder durchsuchen kann.
Die Daten werden fuer den spaeteren Zugriff gespeichert.
Info fuer mich:
1. Adressbuch das Informationen ueber die Kontakte enthaelt wie:
-Vorname
-Nachname
-Alter
-ICQ-Nummer
-Email
2. Die Daten werden in einem Dictionary gespeichert, welches \
schliesslich in einer externen Datei gespeichert wird.
3. Es soll eine visuelle Rueckmeldung ueber Erfolg oder Failure geben'''
class Adressbuch:
global
d = {}
def __init__(self, vorname, nachname, alter, icq, email):
self.vorname = vorname
self.nachname = nachname
self.alter = alter
self.icq = icq
self.email = email
print 'Kontakt %s %s gespeichert' % (self.vorname, \
self.nachname)
def info(self):
print "'%s %s', Alter: '%d' . \nICQ-Nummer: %d \nE-Mail: %s" \
% (self.vorname, self.nachname, self.alter, self.icq, self.email)
print 'Gib die Kontaktinformationen ein:\n'
try:
vorname = raw_input('Vorname:')
nachname = raw_input('Nachname:')
alter = int(raw_input('Alter:'))
icq = int(raw_input('ICQ:'))
email =raw_input('Email:')
except:
print '\nEs ist ein Fehler aufgetreten\n'
else:
print '\nAlles hat geklappt!'
finally:
p = Adressbuch(vorname, nachname, alter, icq, email)
p.info()
f = file("Adressbuch.txt", "a")
cPickle.dump(p, f)
f.close
Ich möchte, dass die Attribute der Klasse (korrigiert mich wenn ich Quark erzähle)
Code: Alles auswählen
p = Adressbuch(vorname, nachname, alter, icq, email)
Anmerkungen
1.)Ich benutze hier bewusst eine Klasse, wobei ich glaube dass es prozedual für den jetzigen Zeitpunkt mehr "python-like" wäre (wobei ich mir bei der aktuellen Phase des Programms nicht sicher bin ob es wirklich einen Unterschied macht) und ich hinterher noch andere Funktionen wie Gruppen, etc. hinzufügen möchte.
2.)
Code: Alles auswählen
cPickle.dump(p, f)
3.) Ich habe diesmal versucht mehr PEP 8 konform zu schreiben. Ich hoffe das ist mir diesmal mehr gelungen wie in meinem anderen Programm.
Weiterhin freue ich mich über Antwort und Verbesserungsvorschläge!
Grüße,
KMachine
[/code]