ausgabe in falscher reihefolge

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
woven88
User
Beiträge: 18
Registriert: Mittwoch 22. September 2010, 18:41

hil,
ich programmier grad ein adressbuch. aber die ausgabe der kontaktdaten passiert in falscher reihenfolge
hier der quelltext:

Code: Alles auswählen

# -*- coding: cp1252 -*-
import cPickle as p
print "WARNUNG: Sie müssen ALLE Eingaben in Anführungszeichen fassen"

class eintrag():
    def daten(self):
        
            name= input("Name: ")
            adress=input("Adresse: ")
            email=input("E-mail: ")
            tel=raw_input("Telefon: ")
            handy=raw_input("Handy: ")

            name= {'Name' : name,
                   'Adresse': adress,
                   'E-mail': email,
                   'Telefon': tel,
                   'Handy': handy}
            
            print " Name: ",name['Name'];
            print " Adresse: ",name['Adresse'];
            print " E-mail: ",name['E-mail']; 
            print " Telefon: ",name['Telefon'];
            print " Handy: ",name['Handy']

            self.data = file('adressbuch.data','w')
            p.dump(name,self.data)
            self.data.close()
            
              

    def change(self):
        who = input("Welchen eintrag möchten sie ändern? ")
            
    def delete(self):
        pass
    def watch(self):
        self.data= file('adressbuch.data','r')
        self.contact= p.load(self.data)
        print self.contact.name
        
e= eintrag()
while True:
    
        quest=input("was möchten sie  tun? Einträge ändern, anschauen oder löschen?  ")
        if quest == "eintragen":
            e.daten()
        elif quest == "löschen":
            e.delete()
        elif quest == "ändern":
            e.change()
        elif quest == "anschauen":
            e.watch()
            
    
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Ein paar Anmerkungen/Fragen:

* Was genau wird in falscher Reihenfolge ausgegeben? Name, Adresse, ...? Wenn ja, dann liegt das am Dictionary, das ist nämlich per Definition unsortiert. Sieh dir dazu aber auch den nächsten Punkt an.
* Wenn du schon objektorientiert arbeitest, warum ist dann ein Kontakt keine Klasse sondern ein Dictionary?
* Statt `input` solltest du `raw_input` verwenden, dann benötigst du auch nicht die Anführungszeichen bei der Eingabe (bei Python2.x)
* Noch der obligatorische Hinweis auf PEP8, das sind die Coding-Richtlinien für Python. Klassennamen schreibt man z.B. in CamelCase. Schau dir das mal an.
„Lieber von den Richtigen kritisiert als von den Falschen gelobt werden.“
Gerhard Kocher

http://ms4py.org/
woven88
User
Beiträge: 18
Registriert: Mittwoch 22. September 2010, 18:41

wie ne klasse ? JA die einzelnen punkte im dictionary werden falsch ausgeben. wie kann ich das ändern?
BlackJack

@woven88: Du könntest eine Klasse schreiben die einen einzelnen Kontakt repräsentiert. Prima Gelegenheit Dich mit objektorientierter Programmierung auseinander zu setzen. Die "Klasse" die Du da schon hast ist nämlich keine Echte. Das macht so wie es da steht keinen Sinn.
Antworten