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?
python eingabedatei
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
Mal ehrlich, du fragst, weil Du keine Lust hast Dich damit ein bisschen zu beschäftigen, oder?
fs111
mal ehrlich: ich frage, weil ich keine Ahnung hab wie das geht, weil ich noch Anfänger in dem Gebiet bin.
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
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
@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