So definieren Sie eine Funktion in Python?

Inhalt

Eine Funktion ist ein wiederverwendbarer Codeblock, der eine grundlegende Aufgabe ausführen kann. Die Funktionsdefinition in Python kann sich etwas von der Syntax unterscheiden, die in Sprachen wie C . verwendet wird, C ++ über Java. Das Ziel dieses Beitrags ist es, die Syntax zum Definieren von Funktionen in Python bereitzustellen.

Die Definition der Funktion beginnt mit a def Schlüsselwort gefolgt vom Namen der Funktion und den Argumenten, die die Funktion annehmen kann. Diese Argumente stehen in Klammern und es kann eine beliebige Anzahl von Argumenten geben, einschließlich Null. Wenn es mehr als ein Argument gibt, werden durch ein Komma getrennt. Da Python eine ungenaue Typsprache ist (was bedeutet, dass wir einer Variablen bei der Deklaration keinen Datentyp zuweisen), wir sollten die Datentypen für die Argumente nicht einschließen. Die Deklaration der Funktionsdefinition endet mit einem Doppelpunkt. Und Python, Wir definieren eine Funktion wie folgt:

def Funktionsname(arg1, arg2, arg3,...):
    """
    Funktionslogik geht hier.
    """
    Rückgabewert1, Wert2, Wert3,...

Unten ist eine einfache Funktion,

auf jeden Fall grüßen():
    drucken("Hallo Welt")

Dies ist eine grundlegende Funktion, die druckt “Hallo Welt"Zur Konsole.

Blutung

Wenn wir uns die Definition der Funktion genau ansehen, wir sehen, dass es keine geschweiften Klammern um den Funktionskörper gibt. Und Python, der Funktionskörper wird durch die Einrückungsebene identifiziert. Da wir keine geschweiften Klammern verwenden, um den Funktionsrumpf anzugeben, Die Einrückung ist nützlich für den Python-Interpreter, um zu wissen, welcher Teil des Codes die Funktionslogik festlegt. Wenn wir keine Einrückung der Funktionslogik relativ zur Funktionsdeklaration haben, ein Einzugsfehler generiert und die Funktion wird nicht interpretiert.

auf jeden Fall Spaß(Name):
drucken("Hallo" + Name)

Die obige Funktion wird nicht kompiliert und gibt a . zurück Einzugsfehler.

Rückgabewerte

Eine Funktion kann einen Wert zurückgeben, in diesem Fall wird er dem Interpreter mit dem Zurückkehren Stellungnahme. Im Gegensatz zu C, C ++ über Java, Eine Python-Funktion kann mehrere Werte zurückgeben. Wenn wir keine Rückgabeanweisung einfügen, Die Steuerung wird automatisch an den aufrufenden Code übergeben, ohne einen Wert zurückzugeben. Ein Standardwert von Keiner wird zurückerstattet, wenn keine Rücksendeerklärung vorliegt. Genauso wie bei anderen Sprachen, eine Funktion kann höchstens eine Rückgabedeklaration haben.

auf jeden Fall hinzufügen(ein, B):
    zurück a + B
auf jeden fall hallo():
    drucken("Hallo Welt")
res = hinzufügen(5,7) #res hat einen Wert von 12.
res = hallo() #res hat den Wert None.

Standardargumente

Wir können Standardwerte für die Argumente in der Funktionsdefinition ermitteln. Dazu verwenden wir die folgende Syntax. Beachten Sie, dass die Standardargumente auf der rechten Seite der Argumentliste stehen müssen. Mit anderen Worten, ein Standardargument sollte nur nach allen Nicht-Standardargumenten kommen.

def areaOfCircle(Radius, pi=3.14):
    zurück pi * Radius * Radius

Hier nimmt die Funktion ein Standard-Pi-Argument, das auf die rechte Seite der Argumentliste gesetzt wird. Wenn wir das Standardargument links von einem Nicht-Standardargument definieren, wir bekommen ein Syntax-Fehler.

Anruffunktionen

Nachdem wir nun Funktionen definiert haben, wir sehen, wie wir sie in unserem Code aufrufen können. Um eine Funktion aufzurufen, verwenden wir den Namen der Funktion zusammen mit den Argumenten, die verwendet wurden, um die Funktion zu setzen. Die Anzahl der Argumente muss genau der Anzahl der Argumente entsprechen, die in der Funktionsdefinition vorhanden sind. Jeder Unterschied in der Anzahl der Argumente erhöht die Tippfehler.

def areaOfCircle(Radius, pi=3.14):
    zurück pi * Radius * Radius
#Funktionsaufruf
drucken(areaOfCircle(5))
#Beachten Sie, dass dem Standardargument kein Wert übergeben wird.
#druckt 78.5 auf dem Bildschirm.

Funktionsüberlastung

Erfahrene C-Programmierer ++ oder Java hätte oft überladene Funktionen. Das Überladen von Funktionen funktioniert in Python nicht, denn wenn wir eine Funktion zwei- oder mehrmals definieren, indem wir die Anzahl der Argumente variieren, Die zuletzt eingestellte Funktion überschreibt die vorherigen Definitionen. Wenn die Funktion mit der angegebenen Anzahl von Argumenten im Funktionsaufruf nicht einmal existiert, wir bekommen ein Tippfehler. Als Beispiel,

auf jeden Fall hinzufügen(ein, B):
    zurück a + B
auf jeden Fall hinzufügen(ein, B, C):
    zurück a + B + C
drucken(hinzufügen(1,2)) #wirft einen TypeError, der nach einem weiteren Argument fragt.
drucken(hinzufügen(1,2,3)) #druckt 6 auf der Konsole.

Übergabe von Funktionen als Argumente

Wir können eine Funktion selbst als Argument an eine andere Funktion übergeben. Angenommen, wir möchten eine bestimmte Funktion auf ein Array von Zahlen anwenden. Anstatt eine Funktion zu setzen und sie mit einer for-Schleife aufzurufen, wir könnten einfach die Kartenfunktion benutzen. Die map-Funktion ist eine leistungsstarke integrierte Funktion, die eine Funktion und eine Sammlung von Elementen als Argumente verwendet und die Eingabefunktion auf die gesamte Sammlung von Elementen anwendet und die verarbeiteten Elemente zurückgibt..

def quadrat(ich):
    Rückkehr ich * i 
res = list(Karte(Quadrat, [1,2,3])) 
#res enthält jetzt [1,4,9]. Wir haben die Ergebnisse erhalten, ohne die Liste zu durchlaufen

* Argumente und ** Kwargs

Über Argumente sprechen, Es gibt einige spezielle Arten von Argumenten. Erfahrene Programmierer haben dieses Argument möglicherweise in C und C . verwendet ++. Python bietet auch diese Fähigkeiten. Wenn wir nicht wissen, wie viele Argumente eine Funktion während der Ausführungszeit erhält, wir können benutzen * args, um diese Argumente in der Funktionsdefinition zu erhalten. Darüber hinaus können wir eine Funktionsüberladung erreichen mit * args, obwohl technisch gesehen keine Funktionsüberladung, da wir nicht mehrere Funktionen mit demselben Funktionsnamen definieren.

auf jeden Fall hinzufügen(*args):
    Summe = 0
    für arg in args:
        Summe += arg
    Rücksendesumme
hinzufügen(1,2,3) #kehrt zurück 6
hinzufügen(1,2,3,4) #kehrt zurück 10

Wenn wir benannte Argumente erhalten möchten, wir können benutzen ** Kwargs.

auf jeden Fall Spaß(**Kwargs):
    für Schlüssel in Kwargs:
        drucken(Schlüssel, Kwargs[Schlüssel])
Spaß(a=1,b=2,c=3)
#prints 
#a 1
#B 2
#C 3

Kommandozeilenargumente

Jeder Code auf Produktionsebene würde einen speziellen Argumenttyp verwenden. Dies sind Befehlszeilenargumente, die von der Hauptfunktion verwendet werden. Und Python, diese Argumente werden an die Funktion __main__ übergeben. Wir können sie leicht erhalten, indem wir die Variable sys.argv analysieren. Da das Parsen einer Befehlszeilenzeichenfolge eine häufige Aufgabe ist, wir haben Bibliotheken, die das für uns tun, wie argumentiere ich.

So stellen Sie „anonyme Funktionen“ ein’

Anonyme Funktionen sind unbenannte Funktionen. Sie sind auch bekannt als Lambda Funktionen. Aber warte! Wenn eine Funktion keinen Namen hat, Wie wirst du es nennen?? Diese werden dort benannt, wo sie definiert sind. Sie werden die meiste Zeit später im Code nicht verwendet. Diese Funktionen sind spezielle Funktionen, die verwendet werden, wenn wir eine Funktion selbst als Argument übergeben müssen. Dieser Fall tritt am häufigsten auf, wenn wir eine Art Datenverarbeitung mit Pandas oder einer anderen Bibliothek durchführen möchten. Die Funktion kann so klein sein, dass sie keinen Eigennamen verdient. Diese Funktionen werden mit dem Schlüsselwort . definiert Lambda.

aufführen(Karte(Lambda x: x*x, [1,2,3]))
#druckt Werte [1,4,9]

Wir haben die Quadrate der Eingabeliste berechnet, ohne auch nur eine Funktion zu setzen. Was machen wir mit der Aussage Lambda x: x * x ist, dass wir eine anonyme Funktion definieren, Mit anderen Worten, Namenlos, und wir rufen sie sofort an. Angenommen, wir möchten die Lambda-Funktion zu einem späteren Zeitpunkt verwenden, wir können es in einer Funktionsvariablen speichern und verwenden.

Quadrat = Lambda x: x*x
aufführen(Karte(Quadrat, [1,2,3]))
#druckt Werte [1,4,9]

Die Variable quadrat speichert die Funktion in Quadratzahlen und wir werden sie zu einem späteren Zeitpunkt verwenden, wenn wir die Quadrate der Zahlen in einer Liste berechnen wollen. Bei der Einrichtung von Lambda-Funktionen müssen wir auf folgende Punkte achten:

  1. Keine Rückgabeanweisung.
  2. Argumente werden nicht in Klammern eingeschlossen.
  3. Keine Einrückung.
  4. Mehrere Argumente werden durch ein Komma getrennt
  5. Diese Funktionen sind in einer einzigen Zeile definiert.

Fazit

In diesem kurzen Beitrag wurden die Schritte zum Festlegen einer Funktion erwähnt und die Komponenten einer Funktion erklärt. Die Funktionsdefinition in Python kann im Vergleich zu C . ganz anders aussehen, C ++ oder Java ohne Schlüssel, Rückgabetypen, etc. Aber sobald wir die Struktur der Funktion verstanden haben, es wird einfacher, kompliziertere Funktionen zu schreiben.

Über den Autor

Ich bin Python-Entwickler und arbeite seit mehr als drei Jahren in einem multinationalen IT-Unternehmen. Sie können mich über Gmail kontaktieren.

Die in diesem Beitrag gezeigten Medien sind nicht Eigentum von Analytics Vidhya und werden nach Ermessen des Autors verwendet.

Abonniere unseren Newsletter

Wir senden Ihnen keine SPAM-Mail. Wir hassen es genauso wie du.