Seite 1 von 1

Neuling braucht Hilfe Pytonskript

Verfasst: Mittwoch 24. November 2010, 22:36
von framecode
Ich habe angefangen mich mit Python zu beschäftigen und habe folgende Aufgabe zu bewältigen:

Ich möchte ein einfaches Pythonskript schreiben, welche eine Datei useradressen.txt mit Zeileneinträgen der Form

Vorname Nachname, Straße, PLZ Stadt

einliest und in einem Dictonary mit einer Liste von Tupeln (Nachname, Vorname) zur jeweiligen Postleitzahl speichert.

Beispiel:

Peter Hans, Hansestr 23, 10001 Berlin
Bach Uwe, Uwestr 10, 10001 Berlin

{'10001':['Hans' , 'Peter'),('Uwe', 'Bach')]}

Re: Neuling braucht Hilfe Pytonskript

Verfasst: Mittwoch 24. November 2010, 22:43
von /me
framecode hat geschrieben:Ich möchte ein einfaches Pythonskript schreiben, welche eine Datei useradressen.txt mit Zeileneinträgen der Form

Vorname Nachname, Straße, PLZ Stadt

einliest und in einem Dictonary mit einer Liste von Tupeln (Nachname, Vorname) zur jeweiligen Postleitzahl speichert.
Ich habe nichts dagegen. Von mir aus kannst du das tun.

Solltest du dann einmal konkrete Fragen dazu haben, dann poste hier bitte relevante Codeausschnitte (Python-Tags verwenden) des bestehenden Codes und beschreibe dein Problem und/oder gib die exakte Fehlermeldung an.

Re: Neuling braucht Hilfe Pytonskript

Verfasst: Mittwoch 24. November 2010, 22:48
von querdenker
Lies dir doch bitte mal folgende Forenbeiträge durch:

Offener Brief an Pythonneulinge
und
An alle Schüler und Studenten mit Informatikproblemen

Alleine deine Fragestellung impliziert schon, das
a.) du in der Schule oder im Studium mit python arbeitest, beziehungsweise arbeiten sollst
b.) dass ganze eine vom Lehrer / Tutor / was-auch-immer gestellte Aufgabe ist
c.) du zu bequem bist, dich durch das python-tutorial zu arbeiten

Re: Neuling braucht Hilfe Pytonskript

Verfasst: Mittwoch 24. November 2010, 22:56
von framecode
ok werde meinen Ansatz die nächsten Tage posten inklusive Fehlermeldung
fettes thx

Re: Neuling braucht Hilfe Pytonskript

Verfasst: Freitag 26. November 2010, 19:46
von framecode

Code: Alles auswählen

f1 = file('useradressen.txt' ,'w') # neue Datei

liste = []

Vorname, Nachname = input (" Vorname Nachname: ")
Strasse = input (" Strasse: ")
PLZ, Stadt = input ("PLZ Stadt: ")
liste = liste [(Vorname, Nachname),(Strasse) , (PLZ, Stadt)]

print (liste [0] [1], liste [1] [0])
print (liste [1] [0], liste [1] [1])
print (liste [2] [0], liste [2] [1])

f1.close()
weiter bin ich nicht gekommen möchte ja das mein pytonskript die daten einliest und die liste von tupeln zur jeweiligen plz speichert...

Re: Neuling braucht Hilfe Pytonskript

Verfasst: Freitag 26. November 2010, 19:59
von jbs
Ich seh keine Fehlermeldung und das Skript liest auch keine Datei ein, sondern legt eine an.

Benutzt du Python 3? Bei Python 2.x solltest du raw_input verwenden.

Und dann musst du die Eingabe verarbeiten (z.B. durch split).

Files öffnet man in Python eigentlich mit open ;).

Einige Sachen solltest du dir im Tutorial aber einmal anschauen.

Re: Neuling braucht Hilfe Pytonskript

Verfasst: Freitag 26. November 2010, 20:02
von nomnom
framecode hat geschrieben:

Code: Alles auswählen

f1 = file('useradressen.txt' ,'w') # neue Datei

liste = []

Vorname, Nachname = input (" Vorname Nachname: ")
Strasse = input (" Strasse: ")
PLZ, Stadt = input ("PLZ Stadt: ")
liste = liste [(Vorname, Nachname),(Strasse) , (PLZ, Stadt)]

print (liste [0] [1], liste [1] [0])
print (liste [1] [0], liste [1] [1])
print (liste [2] [0], liste [2] [1])

f1.close()
[*] Methoden die du auf Dateiobjekte ausführen kannst
[*] Dein Unpacking von `PLZ, Stadt` und `Vorname, Nachname` funktioniert nicht wie du es möchtest. Du kannst aber sowas machen:

Code: Alles auswählen

plz, stadt = input("PLZ, Stadt: ").split(',') # dabei muss als Trenner ein Komma benutzt werden
[*] `liste = liste [(Vor …]` funktioniert ebenfalls nicht. Es muss wenn dann schon so lauten:

Code: Alles auswählen

liste = [(Vorname, Nachname), Strasse, (PLZ, Stadt)]

Re: Neuling braucht Hilfe Pytonskript

Verfasst: Freitag 26. November 2010, 20:42
von framecode

Code: Alles auswählen

f1 = file('useradressen.txt' ,'w') # neue Datei

liste = []

Vorname, Nachname = input (" Vorname, Nachname: ").split(',')
a = raw_input ('Eingeben: ')
Strasse = input (" Strasse: ")
b = raw_input ('Eingeben: ')
PLZ, Stadt = input ("PLZ, Stadt: ").split(',')
c = raw_input ('Eingeben: ')
liste = [(Vorname, Nachname), Strasse, (PLZ, Stadt)]


f1.close()
wie gesagt weiß nicht weiter :? kopfschmerzen

Re: Neuling braucht Hilfe Pytonskript

Verfasst: Freitag 26. November 2010, 20:53
von nomnom
framecode hat geschrieben:

Code: Alles auswählen

f1 = file('useradressen.txt' ,'w') # neue Datei

liste = []

Vorname, Nachname = input (" Vorname, Nachname: ").split(',')
a = raw_input ('Eingeben: ')
Strasse = input (" Strasse: ")
b = raw_input ('Eingeben: ')
PLZ, Stadt = input ("PLZ, Stadt: ").split(',')
c = raw_input ('Eingeben: ')
liste = [(Vorname, Nachname), Strasse, (PLZ, Stadt)]


f1.close()
wie gesagt weiß nicht weiter :? kopfschmerzen
Wozu a, b und c? Und welche Python-Version benutzt du denn? Das sieht sehr kaputt aus … Bei Python2 ist input() für sowas gar nicht geeignet, und bei Python3 ist raw_input verboten …?! Und hast du dir meinen Link angeschaut? Da steht doch wie man in Dateien schreibt!

Re: Neuling braucht Hilfe Pytonskript

Verfasst: Freitag 26. November 2010, 21:04
von framecode
ich verwende die v2.7

Re: Neuling braucht Hilfe Pytonskript

Verfasst: Freitag 26. November 2010, 21:15
von nomnom
Gut, dann schau dir mal das hier an:
http://docs.python.org/library/functions.html#input hat geschrieben: input([prompt])
Equivalent to eval(raw_input(prompt)).

Warning: This function is not safe from user errors! It expects a valid Python expression as input; if the input is not syntactically valid, a SyntaxError will be raised. Other exceptions may be raised if there is an error during evaluation. (On the other hand, sometimes this is exactly what you need when writing a quick script for expert use.)
If the readline module was loaded, then input() will use it to provide elaborate line editing and history features.

Consider using the raw_input() function for general input from users.
Also: Statt `input("Strasse, Hausnummer")` eher `raw_input("Strasse, Hausnummer")`. Und dann schau dir einfach mal an, wie man in Dateien schreibt. Wenn du nicht weißt, wie man sucht: Google.
EDIT: Aber wo du schon bei nem direkten Link zur Doku nicht schaust … `file.write()` mehr sag ich nicht.

Re: Neuling braucht Hilfe Pytonskript

Verfasst: Freitag 26. November 2010, 21:18
von jbs
Du solltest dir das Tutorial zu Gemüte führen. Eine fertige Lösung wirst du hier nicht bekommen.