Seite 1 von 1

ausgabe in falscher reihefolge

Verfasst: Mittwoch 24. November 2010, 19:00
von woven88
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()
            
    

Re: ausgabe in falscher reihefolge

Verfasst: Mittwoch 24. November 2010, 19:26
von ms4py
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.

Re: ausgabe in falscher reihefolge

Verfasst: Donnerstag 25. November 2010, 18:08
von woven88
wie ne klasse ? JA die einzelnen punkte im dictionary werden falsch ausgeben. wie kann ich das ändern?

Re: ausgabe in falscher reihefolge

Verfasst: Donnerstag 25. November 2010, 18:15
von 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.