Python Spickzettel für Funktionen

Python ist eine universelle, vielseitige und beliebte Programmiersprache. Sie eignet sich hervorragend als Einstiegssprache, da sie prägnant und leicht zu lesen ist. Ich persönlich schätze sie vor allem für die vielseitige Einsetzbarkeit, da sie für alles von der Web- über die Softwareentwicklung bis hin zu wissenschaftlichen Anwendung verwendet werden kann.

Hier teile ich meinen persönlichen Spickzettel zu Funktionen.

Eine Funktion ist ein Codeblock, der nur ausgeführt wird, wenn er aufgerufen wird.

Sie können Daten, sogenannte Parameter, an eine Funktion übergeben.

Eine Funktion kann Daten als Ergebnis zurückgeben.

In Python wird eine Funktion mit dem Schlüsselwort def definiert:

def my_function():
  print("Hello from a function")

Um eine Funktion aufzurufen, verwenden Sie den Funktionsnamen, gefolgt von Klammern:

Argumente

Informationen können als Argumente an Funktionen übergeben werden.

Die Argumente werden nach dem Funktionsnamen innerhalb der Klammern angegeben. Sie können so viele Argumente hinzufügen, wie Sie wollen, trennen Sie sie einfach mit einem Komma.

Das folgende Beispiel zeigt eine Funktion mit einem Argument (fname). Wenn die Funktion aufgerufen wird, übergeben wir einen Vornamen, der innerhalb der Funktion verwendet wird, um den vollständigen Namen auszugeben:

Wenn Sie nicht wissen, wie viele Argumente an Ihre Funktion übergeben werden, fügen Sie in der Funktionsdefinition ein * vor dem Parameternamen ein.

Auf diese Weise erhält die Funktion ein Tupel von Argumenten und kann entsprechend auf die Elemente zugreifen:

Sie können Argumente auch mit der Syntax key= value senden.
Auf diese Weise spielt die Reihenfolge der Argumente keine Rolle.

Wenn Sie nicht wissen, wie viele Schlüsselwortargumente an Ihre Funktion übergeben werden, fügen Sie zwei Sternchen hinzu: ** vor den Parameternamen in der Funktionsdefinition.

Auf diese Weise erhält die Funktion ein Wörterbuch der Argumente und kann entsprechend auf die Elemente zugreifen:

Das folgende Beispiel zeigt, wie man einen Standardparameterwert verwendet.

Wenn wir die Funktion ohne Argument aufrufen, wird der Standardwert verwendet:

Sie können beliebige Datentypen als Argument an eine Funktion senden, und sie werden innerhalb der Funktion als derselbe Datentyp behandelt.

Wenn Sie z. B. eine Liste als Argument senden, ist sie immer noch eine Liste, wenn sie die Funktion erreicht:

Um eine Funktion einen Wert zurückgeben zu lassen, verwenden Sie die return-Anweisung:

Rekursion

Python erlaubt auch die Rekursion von Funktionen, was bedeutet, dass eine definierte Funktion sich selbst aufrufen kann.

Rekursion ist ein gängiges mathematisches und coding Konzept. Es bedeutet, dass eine Funktion sich selbst aufruft. Das hat den Vorteil, dass man Daten in einer Schleife durchlaufen kann, um ein Ergebnis zu erzielen.

Der Entwickler sollte bei der Rekursion sehr vorsichtig sein, denn es kann leicht passieren, dass er eine Funktion schreibt, die nie endet oder die übermäßig viel Speicher oder Prozessorleistung verbraucht. Wenn die Rekursion jedoch richtig geschrieben ist, kann sie ein sehr effizienter und mathematisch eleganter Ansatz für die Programmierung sein.

In diesem Beispiel ist tri_recursion() eine Funktion, die ich so definiert habe, dass sie sich selbst aufruft. Als Daten verwenden wir die Variable k, die jedes Mal, wenn wir rekursieren, um (-1) verringert wird. Die Rekursion endet, wenn die Bedingung nicht größer als 0 ist (d. h. wenn sie 0 ist).

Lambda Funktion

Eine Lambda-Funktion kann eine beliebige Anzahl von Argumenten annehmen, aber nur einen Ausdruck haben.

Syntax

lambda arguments : expression

Addiert 10 zum Argument a und gibt das Ergebnis zurück:

Multipliziert Argument a mit Argument b und gibt das Ergebnis zurück:

Die Macht von Lambda zeigt sich am besten, wenn Sie sie als anonyme Funktion innerhalb einer anderen Funktion verwenden.

Nehmen wir an, Sie haben eine Funktionsdefinition, die ein Argument annimmt, und dieses Argument wird mit einer unbekannten Zahl multipliziert:

def myfunc(n):
  return lambda a : a * n