Seite 1 von 1

Quellcode-Problem

Verfasst: Samstag 18. September 2010, 11:42
von mcbanana
Hallo Leute!
bin noch neu in der Programmierwelt, aber ich versuche dennoch mal mein Problem zu schildern:

habe mir das Buch "Programmieren von Kopf bis Fuß" gekauft vom O'Reilly Verlag.

Jetzt ist hier ein Quellcode der nicht so ganz funktionieren will:

punktzahlen = {}
ergebnis_dh = open("ergebnisse.txt")
for zeile in ergebnis_dh:
(name, punkte) = zeile.split()
punktzahlen[punkte] = name
ergebnis_dh.close()

print ("Die höchste Punktzahlen waren: ")
for punkte in punktzahlen.keys():
print('surfer ' + punktzahlen[punkte] + 'hatte ' + punkte + ' Punkte')

Die Datei ergebnisse.txt ist im selben Ordner wie die Python-Datei abgespeichert und hat folgenden Inhalt:
Johnny 8.65
Juan 9.12
Joseph 8.45
Stacey 7.81
Aideen 8.05
Zack 7.21
Aaron 8.31

Die Fehlermeldung lautet:

Traceback (most recent call last):
File "C:\Users\Public\Documents\Informatik\python\punktzahlen_abbildung.py", line 4, in <module>
(name, punkte) = zeile.split()
ValueError: too many values to unpack

Hoffe ihr könnt mir weiterhelfen!mfg!

mcbanana

Re: Quellcode-Problem

Verfasst: Samstag 18. September 2010, 12:01
von numerix
Willkommen im Forum!

Künftig bitte Code in Code-Tags (Python) setzen, dann liest es sich besser und die Einrückungen sind erkennbar.
Die Fehlermeldung besagt, dass es mind. eine Zeile in der Datei gibt, die nicht so aussieht, wie beschrieben. Dafür könnte es schon genügen, wenn z.B. statt "7.65" "7. 65" da steht.

Re: Quellcode-Problem

Verfasst: Sonntag 19. September 2010, 13:00
von Rebecca
Nochmal genauer zur Fehlermeldung:

Code: Alles auswählen

(name, punkte) = zeile.split()
erwartet, dass zeile.split() genau zwei Teile zurueckliefert; bei dir kommen aber mehr heraus, deswegen funktioniert das (name, punkte) = eben nicht. ("Too many values"). Lass dir vorher mal zeile oder zeile.split() ausgeben, dann siehst du das Problem.

Re: Quellcode-Problem

Verfasst: Sonntag 19. September 2010, 18:57
von mcbanana
Vielen Dank für die Hilfe:) hab es hinbekommen!
Hab die Textdatei in ein ordentliches Format gerückt, sodass alle Ergebnisse untereinander stehen.

Die höchsten Punktzahlen waren:
Surfer Joseph hatte 8.45 Punkte
Surfer Juan hatte 9.12 Punkte
Surfer Zack hatte 7.21 Punkte
Surfer Aaron hatte 8.31 Punkte
Surfer Aideen hatte 8.05 Punkte
Surfer Johnny hatte 8.65 Punkte
Surfer Stacey hatte 7.81 Punkte

Jetzt kann ich mich mit vollem Elan den nächsten Aufgaben widmen;)