Funktion bedingt anwenden

PythonPythonBeginner
Jetzt üben

This tutorial is from open-source community. Access the source code

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In Python sind Funktionen erstklassige Objekte, was bedeutet, dass sie wie jeder andere Wert weitergegeben werden können. Eine nützliche Anwendung hiervon besteht darin, eine Funktion bedingt auf einer Prädikatfunktion auf einen Wert anzuwenden. In dieser Herausforderung müssen Sie eine Funktion schreiben, die eine Prädikatfunktion und eine Funktion erhält, die dann angewendet werden soll, wenn das Prädikat wahr ist, und die eine neue Funktion zurückgibt, die die Funktion anwendet, wenn das Prädikat wahr ist.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python/BasicConceptsGroup -.-> python/comments("Comments") python/ControlFlowGroup -.-> python/conditional_statements("Conditional Statements") python/DataStructuresGroup -.-> python/tuples("Tuples") python/FunctionsGroup -.-> python/function_definition("Function Definition") python/FunctionsGroup -.-> python/lambda_functions("Lambda Functions") subgraph Lab Skills python/comments -.-> lab-13742{{"Funktion bedingt anwenden"}} python/conditional_statements -.-> lab-13742{{"Funktion bedingt anwenden"}} python/tuples -.-> lab-13742{{"Funktion bedingt anwenden"}} python/function_definition -.-> lab-13742{{"Funktion bedingt anwenden"}} python/lambda_functions -.-> lab-13742{{"Funktion bedingt anwenden"}} end

Wende Funktion an, wenn wahr

Schreiben Sie eine Funktion namens when, die zwei Argumente akzeptiert: eine Prädikatfunktion predicate und eine Funktion when_true, die angewendet werden soll. Die when-Funktion sollte eine neue Funktion zurückgeben, die ein einzelnes Argument x akzeptiert. Die neue Funktion sollte überprüfen, ob der Wert von predicate(x) True ist. Wenn ja, sollte die neue Funktion when_true(x) aufrufen und das Ergebnis zurückgeben. Andernfalls sollte die neue Funktion x zurückgeben.

def when(predicate, when_true):
  return lambda x: when_true(x) if predicate(x) else x
double_even_numbers = when(lambda x: x % 2 == 0, lambda x : x * 2)
double_even_numbers(2) ## 4
double_even_numbers(1) ## 1

Zusammenfassung

In dieser Herausforderung haben Sie eine Funktion geschrieben, die bedingt auf einer Prädikatfunktion eine Funktion auf einen Wert anwendet. Dies ist eine nützliche Technik zum Erstellen von flexiblerem und wiederverwendbarem Code.