Python Hinweise - Funktion

Zurück:

Python nicht nur sehr flexibel definiert Funktionen, und es gebaut selbst kann eine Menge nützlicher Funktionen direkt aufgerufen werden.

Hier ist die Aufzeichnung über den Inhalt des eigenen Lernens, denn es ist ein weißes, so viele grundlegende Dinge wird es aufnehmen, vor allem Ihre eigenen Eindruck zu vertiefen.

Informationen von den offiziellen Website Liao Xuefeng Lehrer sowie Lehrvideos Piep - Station.

 

Rufen Sie die Funktion:

So rufen Sie eine Funktion, müssen Sie den Namen und die Funktion Parameter kennen, können Sie Dokumente direkt von der offiziellen Website von Python anzuzeigen: http://docs.python.org/3/library/functions.html#abs

 

Die Anzahl der übergebenen Parameter beim Aufruf der Funktion hasst nicht, wird eine Fehlermeldung erhalten, wie zum Beispiel:

Daytentypkonvertierung

Python eingebaute Funktion umfasst ferner eine gemeinsame Funktionen Datentypumwandlung, wie int () Funktion kann auf andere Datentypen ganze Zahlen sind, umgewandelt werden:

Der Funktionsname ist eigentlich ein Verweis auf eine Funktion Objekt können Sie den Namen der Funktion einer Variablen zugewiesen setzen, die auf diese Funktion von einem „Alias“ entspricht:

Diese Variable ist wie ein Zeige abs, abs, so dass es eine Funktion durch eine aufrufen können.

 

Definierte Funktionen:

und dann, schreibt die Funktionsblockkörper in dem zurückgezogenen, die Funktion gibt den Wert durch return-Anweisung zurück: In Python, eine Funktion, die def-Anweisung sequentiell schreibt die Funktionsnamen, Klammern, eckige Klammern und Kolon-Parameter zu definieren.

Zum Beispiel haben wir eine Funktion des absoluten Werts von my_abs Beispiel anpassen:

 

Sie können auch schreiben

 

Speicher my_abs () Funktion als 1.py Dateien definiert ist, dann kann es sein , im aktuellen Verzeichnis der Datei Python - Interpreter gestartet , mit 1 Import my_abs my_abs importieren () -Funktion, ein Notiz Dateinamen ( mit Ausnahme. py - Erweiterung):

 

Leere Funktion:

Wenn Sie eine Definition nichts zu tun wollen, ist eine leere Funktion können Sie die Pass-Anweisung verwenden. In der Tat Pass als Platzhalter verwendet werden, beispielsweise kann jetzt nicht herausgefunden hat, wie die Codefunktion zu schreiben, können Sie zunächst einen Pass setzen, so dass der Code sein kann und läuft.

Pass kann auch in anderen Anweisungen verwendet werden, das Fehlen eines Passes, der Code wird mit grammatikalischen Fehlern führen, wie zum Beispiel:

 

Überprüfen Sie die Parameter:

Wenn Sie die Funktion aufrufen, wenn nicht die Anzahl der Parameter, wird Python-Interpreter überprüfen sie automatisch aus und werfen Typeerror:

Wenn jedoch der Parametertyp nicht korrekt ist, wird Python-Interpreter nicht in der Lage sein, uns überprüfen zu helfen. Probieren Sie verschiedene my_abs und die integrierten Funktionen abs:

Wenn ein eingehender unangemessener Parameter, integrierter Funktion abs wird die Parameter der Fehler überprüfen, und wir my_abs keine Parameterprüfung definiert, wenn Anweisungen zu Fehlern führen werden, Fehlermeldungen und abs ist nicht das gleiche. So ist diese Funktion Definition nicht perfekt.

Lassen Sie sich ändern, um die Definition von my_abs, tut Kontrolle des Parameter-Typ, so dass nur Integer- und Floating-Point-Typen von Argumenten. Datentypprüfung kann die isinstance () Implementierung integrierte Funktion werden:

 

mehrere Werte zurückgeben:

Koordinaten gegeben sind, und die Winkelverschiebung, berechnen kann neue Koordinaten Einführung Import-Anweisung zeigt math math Paket und erlaubt nachfolgende Code verwiesen math Beutel sin, cos und ähnliche Funktionen.

Dann können wir einen Rückgabewert zur gleichen Zeit erhalten:

 

Der Rückgabewert ist ein Tupel! Doch in der Grammatik, es gibt ein Tupel Klammern weggelassen werden kann, und eine Vielzahl von Variablen gleichzeitig ein Tupel, entspricht einen Wert von Standort, so dass, Python Rückkehr mehr Werte zurückgibt tatsächlich ein Tupel, aber bequemer zu schreiben zugewiesen erhalten . Dies ist nur eine Illusion, Python-Funktion gibt einen einzelnen Wert bleibt:

 

 

Funktionsparameter

Python Funktionsdefinition ist sehr einfach, aber die Flexibilität ist sehr groß. Neben der normalen Definition der obligatorischen Parameter, Standardparameter verwendet werden können, um die variablen Parameter und Keyword-Parameter, die Funktionsschnittstellendefinitionen, so dass es nicht nur komplexe Parameter verarbeiten kann, kann auch den Code des Anrufers vereinfachen.

Positionsparameter

Wir sind hier, um eine Funktion X² für Energie (x) Funktion, x Parameter ist ein Positionsparameter berechnet zu schreiben.

Wenn wir die Power-Funktion aufrufen, müssen sie nur ein Argument und x bestanden haben:

 

Das verwendet, um die n-te Potenz von X zu berechnen, wie zu tun? Damit wir Kraft (x) modifiziert, um die Macht gebracht (x, n):

Leistung (x, n) Funktion erhält zwei Parameter: x und n werden diese beiden Parameter sind Positionsparameter, die Funktion aufgerufen wird, vorbei an den beiden Positionen in Übereinstimmung mit den Bestellwerten zugeordnet Parameter x und n.

 

Die Standardparameter

Die neue Macht (x, n) Funktionsdefinition ist kein Problem, aber die alte Berufung Code schlägt fehl, da wir wegen des Mangels eines Parameters einen Parameter, was in alten Code hinzugefügt wird, kann nicht normal aufgerufen werden:

Dieses Mal sind die Standardparameter auf Flöße handlich. Python Fehlermeldung ist klar: Die Funktion Leistungs () aufrufen, das Fehlen eines Positionsparameters n. Wie berechnet X² schreiben kann:

Auf diese Weise, wenn wir Energie nennen (5), das entspricht dem Aufruf von Energie (5, 2).

 

Wenn Sie die Standardparameter eingestellt, gibt es mehrere Punkte zur Kenntnis :

Eine davon ist ein obligatorischer Parameter zunächst von den Standardparametern gefolgt, da sonst der Python-Interpreter wird sich beschweren (darüber nachdenken, warum die Standardparameter nicht vor obligatorischen Parameter gesetzt werden);

Zweitens, wenn eine Funktion eine Mehrzahl von Parametern aufweist, die vor einer großen Änderung platziert Parameter, eine kleine Änderung in den Parametern zurückstellen. Kleine Änderungen in den Parametern können als die Standardparameter verwendet werden.

 

Die Standardfunktion des maximalen Nutzen ist die Schwierigkeit des Aufrufs von Funktionen zu reduzieren,

Zum Beispiel müssen wir nun zwei Parameter Namen und Geschlecht zu übergeben. Auf diese Weise ruft einschreiben () Funktion erfordert nur zwei Argumente:

 

Wenn Python Funktionen definiert, wurde der Standardwert des Parameters L berechnet, d.h., [], da der Standardparameter L auch eine Variable, die Punkte auf das Objekt [] wird jedesmal, wenn die Funktion aufgerufen, wenn L Inhalt geändert wird, der nächste Anruf, werden die Standardparameter geändert, nicht mehr eine Funktion Definition [] a.

Hinweis: Der Standardparameter auf die gleichen Objekte zeigen müssen!

 

Keiner dass wir die gleichen Ziele zu erreichen verwenden können, wie zum Beispiel:

Unveränderliche Objekte Einmal erstellt, können die Daten innerhalb eines Objekts nicht geändert werden, wodurch Fehler aufgrund von Änderungen der Daten aufgrund zu reduzieren.

 

variable Parameter

Mathematical den Titel beispielsweise eine Reihe von Zahlen angegeben, b, c ......, berechnet a2 + b2 + c2 + .......

Um diese Funktion zu definieren, müssen wir die Parameter eingegeben bestimmen. Da die Anzahl der Parameterunsicherheit, können wir zuerst gedacht setzen a, b, c ...... als Liste oder Tupel übergeben:

Wenn der Anruf zunächst mit einer Liste oder Tupel :( korrigieren Fehler zum Vergleich)

 

Wir wechselten zu einem Funktionsparameter variable Parameter:

Wir haben soeben einen Parameter vor einem Stern, was bedeutet, es ganz anders darstellt. Empfangene innerhalb der Funktionsparameter ein Tupel Zahlen ist, wird die Funktion aufgerufen wird, kann eine beliebige Anzahl von Parametern übergeben werden, einschließlich 0 Parameter.

 

Schlüsselwort-Argumente

Stichwort Argumente Was ist der Einsatz? Es kann die Funktionalität der Funktion erweitern. Zum Beispiel in der Person Funktion, können wir sicherstellen, dass die empfangenen Namen und das Alter dieser beiden Parameter jedoch, wenn der Anrufer bereit ist, zusätzliche Parameter zur Verfügung zu stellen, die wir erhalten können. Stellen Sie sich vor Sie machen eine Benutzerregistrierung Funktion, zusätzlich zu den Benutzernamen und das Alter erforderlich sind, sind andere Optionen zur Verfügung, verwenden Sie Schlüsselwort Parameter der Funktion zu definieren, in der Lage, die Registrierungsanforderungen zu erfüllen.

 

Keyword Parametern kann mit 0 oder eine beliebige Anzahl von Parameternamen Parameter übergeben, werden diese Parameter automatisch als Schlüsselwörter in einem dict Funktion zusammengebaut, dann in der dict wandelt keywords Parameter zu übergeben:

Vereinfachte Wortlaut:

Dies stellt die zusätzliche ** zusätzliche dict aller an die Funktion übergebenen Schlüssel-Wert-Schlüsselwort-Argumente mit den Parametern ** kw wird kw ein dict bekommen, erhalten dict kw Aufmerksamkeit auf eine Kopie ist extra, und nicht verändert zu kw es wird die zusätzliche externe Funktionen beeinflussen.

 

Benannt Schlüsselwort-Argumente

Für Anrufer Schlüsselwort Parameter, Funktionsparameter können einen Keyword uneingeschränkt weitergegeben werden. In Bezug auf , was am Ende passiert, müssen wir Funktion innerhalb kw Schecks.

Wenn Sie den Namen Keyword - Argumente beschränken möchten, können Sie Schlüssel verwenden namens Wortparameter, zum Beispiel erhalten nur die Stadt und den Job als Keyword - Argumente. ** kw verschiedene Schlüsselwörter und Parameter, mit dem Namen Keyword - Argumente ein spezielles Trennzeichen erforderlich *, * letztere Argument wird als Schlüsselwort - Argumente genannt. Diese Funktion wird in der folgenden Weise definiert:

Wenn die Funktion in einem variablen Parameter definiert wurde, später genannt Schlüsselwort Argumente nicht mehr ein spezielles Trennzeichen benötigen * a:

Benannt Schlüsselwort Argumente müssen in den Parameternamen und den Standort dieser verschiedenen Parameter übergeben werden. Wenn Sie nicht über die Parameternamen übergeben, wird der Anruf gegeben:

Aufgrund der Parameternamen Mangel, wenn die Stadt und Job aufrufen, Python-Interpreter diese vier Parameter werden als positionsbasierte Parameter behandelt, aber die Person () Funktion akzeptiert nur zwei Positionsparameter. Benannt Schlüsselwort Argumente können Standardwerte haben, die den Aufruf vereinfacht, weil die Stadt Schlüsselwort-Argument genannt einen Standardwert hat, wenn Sie anrufen, nicht Stadt Parameter übergeben:

Wenn namens Schlüsselwort-Argumente verwenden, besondere Aufmerksamkeit zu widmen, wenn es keine variablen Parameter ist, ist es notwendig, ein * als Sonder Separator hinzuzufügen. In Abwesenheit von * wird nicht Python-Interpreter den Ort und Namen Schlüsselwort Argumente erkennen.

Parameter-Kombination

Definierte Funktion in Python kann ein obligatorischer Parameter, Standardparameter sein, die variable Parameter, Schlüsselwörter und Namen Keyword-Parameter können diese fünf Parameter in Kombination verwendet werden. Beachten Sie jedoch, muss die Reihenfolge der Parameter definiert werden: Pflichtparameter, Standardparameter, variable Parameter, mit dem Namen Keyword-Argumente und Keyword-Argumente.

Hinweis: Sie können zwar eine Kombination von bis zu fünf Parametern, aber nicht zu viele Kombinationen verwenden oder schlechte Verständlichkeit Funktion Schnittstelle.

Wie die Definition einer Funktion, einschließlich der mehreren Parameter, wenn der Funktionsaufruf Position Python Interpreter automatisch die Parameter entsprechend und dem in entsprechender Parameter übergeben Parametername:

Durch ein Tupel und dict, können Sie auch die obige Funktion aufrufen:

 

Rekursive Funktion:

Innerhalb der Funktion können Sie weitere Funktionen aufrufen. Wenn eine Funktion in sich selbst nennt sich, ist diese Funktion eine rekursive Funktion.

! Zum Beispiel berechnen wir die Fakultät von n = 1 x 2 x 3 x ... xn mit der Funktion fact (n) darstellt, kann gesehen werden:

fact (n) = n! = 1 x 2 x 3 x ... x (n-1) xn = (n-1)! = xn fact (n-1) xn. Daher kann tatsächlich (n) als nx Tatsache dargestellt, werden (n-1), n ​​= 1, nur eine spezielle Handhabung erfordern.

So fact (n) in einer rekursiven Weise geschrieben:

Vorteil ist eine einfache rekursive Funktion, klare Logik zu definieren. Theoretisch können alle rekursiven Funktionen in einer kreisförmigen Art und Weise geschrieben werden, aber nicht so gut wie Rekursionsschleife Logik ist klar.

 

Rekursive Funktion Bedürfnisse getroffen werden Stapelüberlauf zu vermeiden. Da die Stack-Größe nicht unbegrenzt ist, so ist auch die Anzahl der rekursiven Aufrufe viel wird zu einem Stapelüberlauf führen:

 

Rekursiven Aufruf Stapelüberlauf wird durch gelöst Schwanz-Rekursion Optimierung, Endrekursion bedeutet , dass, wenn die Funktion zurückkehrt, nennt sich selbst und, return - Anweisung keine Ausdrücke enthalten. Auf diese Weise kann der Compiler oder Interpreter Sie optimieren Endrekursion tun können, die rekursive Aufruf an sich selbst, egal wie viele Male, nur einen Stapelrahmen besetzen, Stapelüberlauf Situation nicht auftritt.

 

Um die tail-rekursive Art und Weise zu ändern, es erfordert ein bisschen mehr Code ist in erster Linie das Produkt von jedem Schritt zu einer rekursiven Funktion übergeben sollte:

Rückkehr fact_iter (num - 1, num * Produkt) gibt nur die rekursive Funktion selbst , NUM - 1 und num * wird Produkt ausgewertet werden , bevor der Funktionsaufruf nicht den Funktionsaufruf nicht beeinträchtigt.

Ich denke du magst

Origin www.cnblogs.com/qi-yuan/p/12629755.html
Empfohlen
Rangfolge