Hallo zikzak,
danke für die Unterstützung und den Code.
zikzak hat geschrieben:Vielleicht trifft es das:
Code: Alles auswählen
# -*- coding: utf-8 -*-
mittelwert = lambda *z: sum(*z) / len(*z)
zahlen = input("Zahlen eingeben! (durch , getrennt) ")
print (mittelwert ([float(x) for x in zahlen.split(sep=",")]))
Ja, das hat mich in der Tat weitergebracht
Du übergibst eine Liste als *Arg und ich habe die ganze Zeit gedacht, dass *Arg Tupel braucht
Nun klappt es auch in meinem Beispiel mit List.
Ich habe allerdings immer noch etwas Verständnisproblem und zwar:
Ich habe festgestellt, wenn die Werte "direkt" als *Arg übergeben werden, dann muss man die Sterne in sum() und len() weglassen.
Wie in folgendem Beispiel
mittelwert1:
Code: Alles auswählen
def mittelwert1(*arg):
print(type(arg))
return sum(arg) / len(arg)
print("Der Mittelwert betraegt: %f" %mittelwert1(1,2,3))
Als welcher Datentyp wird hier 1,2,3 übergeben - doch nicht als List, oder??
Wenn aber das Argument als Liste übergeben wird, dann braucht man die Sterne überall, wie in diesem Beispiel
mittelwert2:
Code: Alles auswählen
def mittelwert2(*arg):
print(type(arg))
return sum(*arg) / len(*arg)
zahlen = input("Werte eingeben! ")
liste = zahlen.split(sep=",")
for i in liste:
liste[liste.index(i)] = float(i)
print("Der Mittelwert betraegt: %f" %mittelwert2(liste))
Wenn ich aber in
mittelwert1 und
mittelwert2 den Datentyp von arg ausgeben lasse, dann wird in beiden Fällen Tupel ausgegeben:
Viele Grüße
Thomas