Seite 1 von 1
Beliebige Anzahl an Parametern
Verfasst: Donnerstag 25. Dezember 2014, 14:11
von Slerrag
Moin moin,
so nun mein erster Beitrag:
Die Funktion minus() soll eine beliebige Anzahl an Variablen dekrementieren.
Man übergibt ihr z.B. 5 Variablen, die dann alle um 1 verringert werden sollen.
Dabei soll ein Minimum mit übergeben werden.
Bisher:
Code: Alles auswählen
a = 0
b = 10
c = 100
x = 42
minimum = 0
def minus(min, var):
if(var != minimum):
var -= 1
else:
print("Wert von " + var + " minimal!")
minus(minimum, a,b,c,x)
Wie lege ich fest, dass var mehrere Integer sein kann?
Und wie arbeite ich dann mit diesen?
Danke
Slerrag
Re: Beliebige Anzahl an Parametern
Verfasst: Donnerstag 25. Dezember 2014, 14:27
von BlackJack
@Slerrag: Das geht so wie Du Dir das vorstellst nicht einmal mit einer ”Variablen” weil man keine ”Variablen” übergibt sondern Werte. Und hier geht es um unveränderliche Werte, das heisst was Du mit der lokalen ”Variable” `var` in der Funktion anstellst hat absolut keinen Einfluss auf `a`, `b`, `c`, oder `x` beim Aufrufer der Funktion.
Und bevor Du anfängst über ”Magie” wie das übergeben von beliebig vielen Argumenten nachzudenken, solltest Du erst einmal definitiv auschliessen und begründen können warum Du da nicht einfach eine Sequenz von Werten übergeben kannst, also zum Beispiel eine Liste oder ein Tupel.
Funktionen die eine Operation auf Daten durchführen die nichts mit der Ein- oder Ausgabe zu tun haben, sollten zusätzlich nicht auch noch Ein- oder Ausgaben vornehmen.
Re: Beliebige Anzahl an Parametern
Verfasst: Donnerstag 25. Dezember 2014, 14:33
von Sirius3
@Slerrag: bevor Du mit variabler Anzahl an Argumenten arbeitest, solltest Du zuerst etwas über Funktionen, Gültigkeitsbereiche von Variablen und Stringformatierung lernen.
Meistens ist es sinnvoller, eine Funktion für ein Argument zu schreiben, und falls doch mal mehrere Argumente benötigt werden, explizit zu lösen:
Code: Alles auswählen
def minus(min, x):
return max(minimum, x-1)
a = 0
b = 10
c = 100
minimum = 0
a, b, c = (minus(minimum, x) for x in (a,b,c))
Re: Beliebige Anzahl an Parametern
Verfasst: Donnerstag 25. Dezember 2014, 15:19
von Slerrag
@BlackJack
Ich fürchte, ich habe mich unklar ausgedrückt. Mir ist durchaus bewusst, dass ich keine Variablen übergebe, sondern Werte...
Und die Ausgabe ist nur zum Testen des Programms gewesen.
Und gerade diese Magie ist ja Sinn des Übens gewesen
@Sirius3
Danke dir, war mir nicht klar, dass sowas geht. Ist natürlich sinnvoller, die Funktion mit einem Wert laufen zu lassen.
Danke euch beiden, kann geschlossen werden
