Python-Basis - Funktion

Funktion (Funktionen) bezieht sich auf das Programmfragment wiederverwendbar. Sie ermöglichen es , den Namen für einen Block von Code, die Sie einen Code - Block überall in Ihrer Anwendung durch diesen besonderen Namen laufen zu lassen, und können beliebig oft wiederholt werden. Dies wird * Call (Aufruf) * Funktion aufgerufen. Wir haben bereits viele integrierte Funktionen verwendet werden, wie lenund range.

Das Konzept kann in jedem komplexen Software-Funktion (unabhängig davon, was Programmiersprache) ist die wichtigsten Bausteine, so dass beim nächsten wir verschiedenen Aspekten im Zusammenhang Funktionen in diesem Kapitel erkunden.

Nach Stichwort Funktionen können defdefiniert werden. Dieses Schlüsselwort wird durch eine Kennung Namen einer Funktion gefolgt, und im Gespräch mit einem Paar von Klammern, die den Namen einiger Variablen beinhalten können, und dann mit einem Doppelpunkt, das Ende der Leitung beenden. Dann kam der Satzteil des Funktionsbausteins ist. Der folgende Fall wird dies demonstrieren ist eigentlich ganz einfach:

Fall (Speichern unter function1.py):

def say_hello():
    # 该块属于这一函数
    print('hello world')
# 函数结束

say_hello()  # 调用函数
say_hello()  # 再次调用函数

Ausgang:

hello world
hello world

Wir haben oben definieren den Namen erklärt say_helloder Funktion. Diese Funktion verwendet keine Parameter, so gibt es keine Deklaration von Variablen in Klammern. Funktionsparameter ist , in Funktion ein, so dass ich es auf einen anderen Wert übergeben kann, und die entsprechenden Ergebnisse erhalten.

Zu beachten, dass wir zwei Anrufe auf die gleiche Funktion, was bedeutet, dass müssen wir einmal den Code nicht neu zu schreiben.

1. Funktionsparameter

Funktion, die Argumente nehmen kann, wird der Wert des Parameters von Ihnen zur Verfügung gestellten, wobei Funktionen diese Werte etwas zu tun, verwenden können. Diese Parameter sind ähnlich den Variablen, die Werte dieser Variablen definiert wurden, wenn wir die Funktion aufrufen, und haben die Zuordnung zur Laufzeitfunktion abgeschlossen.

Funktionsparameter durch ein Paar von Klammern Platzieren die Funktion angegeben in, zu definieren , und durch ein Komma getrennt werden. Wenn wir die Funktion aufrufen, müssen wir Wert in der gleichen Form zur Verfügung zu stellen. Die hier verwendete Terminologie zu beachten ist - der angegebene Name der Definition der Funktion bezeichnet * „Parameter“ (die Parameter) , beim Aufruf der Funktion Du auf den Wert für die Funktion des bereitgestellten genannten „Arguments“ (Argumente) *.

Fall (Speichern unter function_param.py):

def print_max(a, b):
    if a > b:
        print(a, 'is maximum')
    elif a == b:
        print(a, 'is equal to', b)
    else:
        print(b, 'is maximum')

# 直接传递字面值
print_max(3, 4)

x = 5
y = 7

# 以参数的形式传递变量
print_max(x, y)

Ausgang:

4 is maximum
7 is maximum

Hier werden wir den Namen der Funktion print_maxund Verwendung von zwei Parametern aufgerufen aund b. Wir verwenden eine einfache if...elseAnweisung , um die größere Anzahl zu finden, und drucken Sie es aus.

Erster Aufruf print_maxwir diese Nummer Funktion in einer direkten Form Argument liefern. Im zweiten Aufruf werden wir Variable als Argument sein , um die Funktion aufzurufen. print_max(x, y)Das Argument , dass der xWert wird den Parameter zugeordnet wird a, und die tatsächlichen yParameterwerte werden zu einem Parameter zugeordnet werden b. In beiden Anrufen, die print_maxArbeit in der gleichen Art und Weise.

2. Lokale Variablen

Wenn Sie eine Variable in einer Funktionsdefinition deklarieren, sie nicht in irgendeine Weise anders als zu leben mit der gleichen Funktion aber mit einer Variablennamen Generation Beziehungen, das heißt, es gibt sie nur in den Variablennamen der Funktion der lokalen (Lokal) . Dies wird Variable namens Umfang (Scope) . Scope alle Variablen blockieren sie definiert sind, ausgehend von der Definition ihrer Namen Punkte definiert.

Fall (Speichern unter function_local.py):

x = 50

def func(x):
    print('x is', x)
    x = 2
    print('Changed local x to', x)

func(x)
print('x is still', x)

Ausgang:

x is 50
Changed local x to 2
x is still 50

Wenn wir den Namen der ersten Reihe , die in dem Funktionsblock zum ersten Ausdruck , xwenn der Wert, Python , den Wert dieses Parameters auf dem Hauptblock der Anweisung Funktionsdeklaration verwendet.

Dann werden wir Wert 2zugewiesen x. xWir sind die lokalen Variablen der Funktion. Wenn wir also die Funktion ändern xWerte , wenn der Hauptcodeblock xnicht beeinträchtigt werden.

Mit dem letzten Satz der printErklärung, zeigen wir den wichtigsten Codeblock definierte xWert, wodurch bestätigt wird, dass die lokalen Variablen der Funktion beeinflussen ist es nahezu unabhängig von dem vorherigen Anruf.

3. globalStatement

Wenn Sie eine Top-Level - Programmvariablen zugewiesen werden sollen (dh ist es nicht in jedem Bereich vorhanden ist , unabhängig von Funktion oder Klasse), dann müssen Sie der Python - Variable sagen nicht lokal, sondern global * (Global) * a. Wir müssen globaldies in einer Erklärung tun. Da ohne Verwendung globalder CASE - Anweisung, es ist unmöglich , eine variable außerhalb der Funktionszuweisung zu definieren.

Sie können den Wert der außerhalb der Funktion definierten Variablen verwenden (keine Funktion Variable mit dem gleichen Namen angenommen). Allerdings wird dieser Ansatz nicht gefördert werden und soll vermieden werden, da sie nicht eindeutig den Leser Programm ist, können Sie nicht herausfinden , wo die Definition von Variablen ist. Durch die Verwendung der globalAussagen dieses eindeutig im Codeblock Variable wird in den äußersten definiert sehen.

Fall (Speichern unter function_global.py):

x = 50

def func():
    global x

    print('x is', x)
    x = 2
    print('Changed global x to', x)

func()
print('Value of x is', x)

Ausgang:

x is 50
Changed global x to 2
Value of x is 2

globale Aussage zu erklären , xeine globale Variable ---- Wenn wir also wie funktionieren , xwenn die Zuordnung, diese Änderung den Wert von x beeinflussen wird wir im Hauptcodeblock verwendet.

Im gleichen Satz können Sie globalmehr als eine globale Variable Anweisung angeben, zum Beispiel global x, y, z.

4. Die Standard-Parameterwerte

Bei einigen Funktionen möchten Sie vielleicht einige Parameter optional und verwenden Sie die Standardwerte machen, wollen Sie nicht die Situation , um sie um einen Wert zu vermeiden , bietet. Die Standard - Parameterwerte können helfen , wirksam sein , um diese Situation zu lösen. Sie können einen Zuweisungsoperator (eine Funktionsdefinition anhängen =) , um die Standard - Parameterwerte für die Parameter angeben.

Zu beachten, dass der Standard-Parameterwert sollte konstant sein. Genauer gesagt sollte das Standardargument Wert unveränderlich sein ---- Dies wird im Detail in den folgenden Kapiteln erläutert. Vorerst nur nicht vergessen, auf der Linie.

Fall (Speichern unter function_default.py):

def say(message, times=1):
    print(message * times)

say('Hello')
say('World', 5)

Ausgang:

Hello
WorldWorldWorldWorldWorld

Benannt sayFunktion für eine bestimmte Anzahl von Malen in Übereinstimmung mit Druck string. Wenn wir keinen Wert liefern, dann standardmäßig druckt nur eine Saite. Wir Parameter timesStandardwert für den angegebenen Parameter 1dies zu erreichen.

Im ersten Einsatz saybieten wir nur eine String - Funktion und somit nur eine Zeichenfolge gedruckt wird. In der zweiten Anwendung saybieten wir sowohl eine Zeichenfolge, während auch einen Parameter bereitstellt 5, erklärt , dass wir zu * sagen wollen (Say) * string fünfmal.

Hinweis : Es wird nur die Parameter am Ende der Parameterliste kann die Standard - Parameterwerte angegeben werden, was bedeutet , dass die Parameter Standardparameterwerte in der Parameterliste von Funktionen, die nicht kein Argument vor den Standard - Parameterwerten dargestellt werden.
Dies liegt daran , dass die Positionswerte zugeordnet sind , sequentiell Parametric entfernt. Zum Beispiel, def func(a, b=5)um wirksam zu sein, aber def func(a=5, b)ist nicht gültig.

Die Keyword-Argumente

Wenn Sie einige Funktionen mit vielen Parametern haben und Sie nur einige davon angegeben sind, können Sie sie nennen diese Parameter Zuordnung zu geben - das ist die Keyword - Argumente (Stichwort die Argumente) - verwenden wir den Namen ( Stichwort) statt Position (die Art , wie wir verwendet wurden) , um die Parameter - Funktion angeben.

Dies hat zwei Vorteile ---- Erstens haben wir nicht mehr notwendig, die Nutzung des Ordnungsparameter zu berücksichtigen, wird die Funktion viel einfacher sein. Zweitens können wir nur jene Parameter, dass wir auf die Zuordnung geben wollen, solange die anderen Parameter Standard-Parameterwerte haben.

Fall (Speichern unter function_keyword.py):

def func(a, b=5, c=10):
    print('a is', a, 'and b is', b, 'and c is', c)

func(3, 7)
func(25, c=24)
func(c=50, a=100)

Ausgang:

a is 3 and b is 7 and c is 10
a is 25 and b is 5 and c is 24
a is 100 and b is 5 and c is 50

Genannt funcFunktion ist kein Standardparameterwert des Parameters, gefolgt von zwei Parametern der jeweils ein Standard - Parameterwerte aufweisen.

Das erste Mal , wenn die Funktion aufgerufen wird func(3, 7), die Parameter aerhaltenen Werte für 3die Parameter bWert erhalten 7, und cgewannen Werte eines Standardparameters 10.

Beim Aufruf die zweite Funktion, func(25, c=24)aufgrund seiner Position , in der die variable aersten Wert erhalten 25. Dann wird , wie der Name, die Schlüsselwort - Argument ist ---- ---- angegebene Variablen cerhaltene Wert 24. Variable berhält die Standard - Parameterwerte 5.

Wenn die Funktion zum dritten Mal anrufen, func(c=50, a=100)wir alle den Wert festlegen , Schlüsselwort - Parameter. Zu beachten , dass trotz ader czuvor definierten, aber wir sind immer noch in einer Variablen avor der angegebenen Variablen c.

6. Die variablen Parameter

Manchmal können Sie eine Funktion definieren wollen , die haben kann eine beliebige Anzahl von Variablen, das heißt, ist die Anzahl der Parameter Variable, die unter Verwendung eines Stern erreicht werden kann.

Fall (Speichern unter function_varargs.py) ::

def total(a=5, *numbers, **phonebook):
    print('a', a)

    #遍历元组中的所有项目
    for single_item in numbers:
        print('single_item', single_item)

    #遍历字典中的所有项目
    for first_part, second_part in phonebook.items():
        print(first_part,second_part)

print(total(10,1,2,3,Jack=1123,John=2231,Inge=1560))

Ausgang:

a 10
single_item 1
single_item 2
single_item 3
Inge 1560
John 2231
Jack 1123
None

Wenn wir eine solche deklarieren *paramZeit Sternchen Argument, Startposition , bis alle Parameter (Positional Argumente) Endung wird von hier aus aufgerufen in einer gesammelt und vereinigt werden paramTupel (Tuple).

Ebenso, wenn wir eine solche deklarieren **paramZeit von zwei Sternchen Argumente, alle Keyword - Argumente von hier bis zum Ende zusammen in einem benannten gesammelt und bringen paramWörterbuch (Dictionary).

Wir werden in späteren Kapiteln mehr über Tupel und Wörterbücher erkunden.

7. return-Anweisung

returnAussage von der Funktion zurückkehrt , die die Interrupt - Funktion ist. Wir können auch einen Wert zurückgeben aus einer Funktion in der Interrupt - Funktion wählen.

Fall (Speichern unter function_return.py):

def maximum(x, y):
    if x > y:
        return x
    elif x == y:
        return 'The numbers are equal'
    else:
        return y

print(maximum(2, 3))

Ausgang:

3

maximumFunktion einen Maximalwert - Parameter, im vorliegenden Ausführungsbeispiel Rückkehr zu Wertfunktion vorgesehen. Es verwendet eine einfache if...elseErklärung Je größer der Wert und finden Rückkehr .

Zu beachten , dass , wenn returndie Aussage nicht von den Werten übereinstimmen es eine Rückkehr darstellt None. NoneIn Python, einem speziellen Typ, repräsentiert Nichts. Zum Beispiel, die eine Variable verwendet wird keinen Wert , um anzuzeigen, wenn der Wert der Wert ist None(虚无).

Jede Funktion am Ende ihrer Strafe angedeutet return None, es sei denn , Sie schreiben Sie Ihre eigene returnAussage. Sie können laufen print(some_function()), in dem die some_functionFunktion nicht verwenden returnAussagen wie folgt aus :

def some_function():
    pass

Die Python - passAnweisung , um einen Block von Anweisungen ohne Inhalt anzeigt.

Tipp: Es gibt eine eingebaute Funktion namens max erreicht ist diese Funktion „die maximale Anzahl von zu finden“, so dass diese integrierte in-Funktion verwenden, so viel wie möglich.

8. DocStrings

Python hat eine sehr schöne Funktion namens Dokumentation Strings (Dokumentation Strings) , in der Regel einen anderen kürzeren Namen zu verwenden , wenn sie anrufen Docstrings . DocStrings ist ein wichtiges Werkzeug , dass Sie verwenden sollten, kann es Ihnen helfen, besser das Programm aufzeichnen und machen es leichter zu verstehen. Erstaunlicherweise , wenn das eigentliche Programm läuft, können wir auch das Dokument durch eine Funktion erhalten!

Fall (Speichern unter function_docstring.py):

def print_max(x, y):
    '''打印两个数值中的最大数。

    这两个数都应该是整数'''
    # 如果可能,将其转换至整数类型
    x = int(x)
    y = int(y)

    if x > y:
        print(x, 'is maximum')
    else:
        print(y, 'is maximum')

print_max(3, 5)
print(print_max.__doc__)

Ausgang:

5 is maximum
打印两个数值中的最大数。

    这两个数都应该是整数

Die erste Zeile in der logischen Zeile Funktion ist das Funktionszeichendokument string (Docstring) . Docstring zu beachten , hier ist auch anwendbar auf die entsprechenden Abschnitte des später genannten Module (Module) und Klasse (Klasse) .

Das Dokument vereinbarten Zeichenfolge ist eine Kette von mehrzeiligen String, wo die erste Zeile mit einem Großbuchstaben, mit einem Punkt enden. Die zweite Reihe leer ist, die dritte Zeile wird durch den Beginn einer detaillierten Erklärung folgt. 5 Ich empfehlen, dass Sie diese Konvention in allen Dokumentationsstrings folgen alle wichtigen Funktion.

Wir können Funktion verwenden __doc__(beachten Sie, dass eine der doppelten Unterstrichen ) Attribut Funktion (Name der Funktion gehören) , die erhalten print_maxDokument String - Eigenschaft. Solange Python wird alles als Objekt erinnert, was natürlich die Funktion enthält. Wir kommen wieder (Klasse) Klasse Abschnitte mehr Details über das Objekt zu diskutieren.

Wenn Sie eine Python verwendet haben help()Funktion, dann sollten Sie bereits über die Verwendung des Dokuments String kennen. Denn es macht nicht ist die Funktion der bekommen __doc__Eigenschaft und in einem ordentlichen Weg , um es zu präsentieren. Sie können die oben genannte Funktion versuchen nur in ---- in dem Programm aufgenommen help(print_max)auf der Linie. Denken Sie daran , dass Sie drücken können , qum Exit - Taste help.

Automatisierte Tools können Sie Ihre Bewerbungsunterlagen auf diese Weise abrufen. Daher empfehle ich dringend , dass Sie alle wichtigen Funktionen für Ihre Dokumente zusammen mit String schreiben. Python kommt mit dem Release - pydocBefehl help()in ähnlicher Weise das Dokument String verwenden.

Zusammenfassung

Wir kennen bereits die Funktion von vielen Aspekten, aber wir haben immer noch nicht alle Arten von Funktionen abdecken. Allerdings haben wir fast den ganzen Tag bedeckt Sie den täglichen Gebrauch Python-Funktion verwenden.

Als nächstes werden wir lernen, wie Python-Module erstellen und zu verwenden.

Ressourcen

[1] Funktion · ein Byte von Python

Veröffentlicht 66 Originalarbeiten · erntete Lob 101 · Ansichten 30000 +

Ich denke du magst

Origin blog.csdn.net/u010705932/article/details/104405849
Empfohlen
Rangfolge