Bool'sche Parameter Übung

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
I3lackt4r
User
Beiträge: 17
Registriert: Freitag 16. September 2022, 20:25

Schönen guten Morgen/Tag,
ich wünsche
Euch erstmal eine schöne Weihnacht und jetzt zu meiner Frage... Es geht um eine Übung aus meinem Kurs... die Aufgabestellung ist:

Definiere eine Funktion namens meine_funktion, die drei Parameter annimmt, x, y und z.

Wenn z wahr ist, gebe x zurück. Wenn z falsch ist, gebe y zurück.

Denke daran, führe die Funktion nicht aus, sondern gebe einfach die Definition an.

Eine ähnliche Programmlogik sieht zum Beispiel so aus:

if c == True:
return a
else:
return b

Das ist alles, was du brauchst, um anzufangen!

Um dir eine Vorstellung davon zu geben, wie die Funktion im Test aussehen würde:

Ich habe versucht:

def meine_funktion(z,x,y): #<---- ist das richtig???
if z==True:
return x
else:
return y

dann kommt immer:
'Test2' != False: Dies ist leider falsch
Benutzeravatar
sparrow
User
Beiträge: 4540
Registriert: Freitag 17. April 2009, 10:28

Die Reihenfolge der Parameter könnte wichtig sein. Man kann in Python die Parameter beim Aufruf einer Funktion benannt übergeben oder nach Reihenfolge. Und so, wie ich die Aufgabe verstehe, soll z der letzte Parameter sein.
Benutzeravatar
bwbg
User
Beiträge: 407
Registriert: Mittwoch 23. Januar 2008, 13:35

Definiere eine Funktion namens meine_funktion, die drei Parameter annimmt, x, y und z.
Ich gehe stark davon aus, dass ich sich um positional arguments handelt. Sprich: Hier ist die Position beim Aufruf relevant und nicht der Name. Die der Konsequenz musst du dich an diese Reihenfolge aus der Aufgabenstellung halten:

Code: Alles auswählen

def meine_funktion(x, y, z): ...
:arrow: Die Parameter einer Funktion müssen nicht in der Reihenfolde aufgeführt werden, wie sie in der Funktionsdefinition verwendet werden. Sie müssen lediglich äußeren Anforderungen genügen, wie zum Beispiel Lesbarkeit oder eben hier der Aufgabenstellung.

Einige Hinweise über die Aufgabenstellung hinaus:

Einen boolschen Wert auf True oder False zu Prüfen ist überflüssig.

Code: Alles auswählen

if c == True: ...
Besser man schreibt direkt:

Code: Alles auswählen

if c: ...
Der ganze if-else-Block ließe sich in einem Ausdruck zusammendampfen:

Code: Alles auswählen

return x if z else y
"Du bist der Messias! Und ich muss es wissen, denn ich bin schon einigen gefolgt!"
I3lackt4r
User
Beiträge: 17
Registriert: Freitag 16. September 2022, 20:25

Danke für Eure Hilfe, ich hab es trotzdem selbst geschaft:
def meine_funktion(x,y,z):
if z == True:
return x
else:
return y

Schöne Feiertage und einen guten Rutsch in 2023!
Benutzeravatar
/me
User
Beiträge: 3561
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

bwbg hat geschrieben: Sonntag 25. Dezember 2022, 08:21

Code: Alles auswählen

return x if z else y
Ich hab' hier noch was mit gleicher Zeichenanzahl:

Code: Alles auswählen

return(y,x)[bool(z)]
Nicht so schön wie die andere Variante, aber vielleicht ein interessanter Code für einen Anfänger zum Knobeln.
I3lackt4r
User
Beiträge: 17
Registriert: Freitag 16. September 2022, 20:25

Danke
Antworten