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')]}
Neuling braucht Hilfe Pytonskript
Ich habe nichts dagegen. Von mir aus kannst du das tun.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.
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.
-
- User
- Beiträge: 424
- Registriert: Montag 28. Juli 2003, 16:19
- Wohnort: /dev/reality
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
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
I'm not getting paid for being Mr. Nice Guy!
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()
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.
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.
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
[*] Methoden die du auf Dateiobjekte ausführen kannstframecode 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()
[*] 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
Code: Alles auswählen
liste = [(Vorname, Nachname), Strasse, (PLZ, Stadt)]
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()
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!framecode hat geschrieben:wie gesagt weiß nicht weiter kopfschmerzenCode: 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()
Gut, dann schau dir mal das hier an:
EDIT: Aber wo du schon bei nem direkten Link zur Doku nicht schaust … `file.write()` mehr sag ich nicht.
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.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.
EDIT: Aber wo du schon bei nem direkten Link zur Doku nicht schaust … `file.write()` mehr sag ich nicht.
Du solltest dir das Tutorial zu Gemüte führen. Eine fertige Lösung wirst du hier nicht bekommen.
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]