Seite 1 von 1

python eingabedatei

Verfasst: Donnerstag 3. Juni 2004, 11:09
von student001
hi
ich möchte eine Python-Funktion, die eine Eingabe-Datei mit mehreren Zeilen der Form
Name Studenlohn AnzahlStunden
einliest und für jede Zeile ausgibt
Name Stundenlohn*AnzahlStunden
falls AnzahlStunden größer als 0 ist.
wie läuft das ab?

Verfasst: Donnerstag 3. Juni 2004, 11:57
von fs111
Datei zeilenweise einlesen, Zeilen zerlegen, Zeichenketten in float umwandeln, berechnen, ausgeben.

Mal ehrlich, du fragst, weil Du keine Lust hast Dich damit ein bisschen zu beschäftigen, oder?

fs111

Verfasst: Donnerstag 3. Juni 2004, 12:06
von student001
mal ehrlich: ich frage, weil ich keine Ahnung hab wie das geht, weil ich noch Anfänger in dem Gebiet bin.

Verfasst: Donnerstag 3. Juni 2004, 12:17
von Milan
Hey hey hey, bitte nicht flamen. Auch wenn fs11 nicht ganz unrecht hat, dass man sich man sich selbst damit beschäftigen muss (wir hatten schon einige Fälle im Forum, wo das nicht der Fall war), kann man ja immerhin Anreize dazu geben. Hier mal etwas kommentierter Quellcode:

Code: Alles auswählen

f=file("xyz.txt","r") #Datei öffnen und file-Obj anlegen
for zeile in f:
    zeile=zeile.replace("\n","") #Zeilenumsprung abtrennen
    Name,Studenlohn,AnzahlStunden=zeile.split() #Werte auftrennen und als Strings in Variablen speichern
    if float(AnzahlStunden)>0:
        print Name,float(Stundenlohn)*float(AnzahlStunden)
f.close() #Datei wieder schließen

Verfasst: Donnerstag 3. Juni 2004, 12:18
von fs111
Mir stellt sich da nur ernsthaft die Frage, ob Du überhaupt mal ein Tutorial oder ein bisschen Doku zu Python gelesen hast. Ich will Dich nicht angreifen, aber Deine Frage erweckt wirklich den Anschein, dass Du keine eigenen Anstrengungen unternommen hast, das Problem zu lösen...


@Milan

Da Du ja schon eine Lösung gepostet hast, noch eine kleine Anregung:

Ich würde in den ausgelesenen Werten noch vor der Umwandlung in float evtl. auftretenden "," durch "." ersetzen. Da wir im deutschprachigen Raum ja Kommazahlen haben, und keine "Punktzahlen", ist wohl davon auszugehen, dass die in der Datei wohl so vorliegen.

Grüße fs111