Grundlagen von Python-Funktionen
Funktionen sind der nächste Schritt, nachdem Sie sich die Programmiergrundkenntnisse von Python angeeignet haben. In ihrer einfachsten Form enthält eine Funktion Code, der immer einen Wert (oder Werte) zurückgibt. In einigen Fällen verfügt eine Funktion auch über optionale oder erforderliche Eingaben.
Wenn Sie mit dem Schreiben von Code beginnen, der andere Teile des Programms dupliziert, ist dies eine perfekte Gelegenheit, den Code in eine Funktion zu extrahieren. Obwohl das Teilen von gemeinsamem Code über Funktionen nützlich ist, können Sie die Codegröße auch einschränken, indem Sie Teile in kleinere (besser lesbare) Funktionen extrahieren.
Programme, die Duplizierung vermeiden und große Funktionen durch kleinere Funktionen umgehen, sind besser lesbar und zu verwalten. Sie sind auch einfacher zu debuggen, wenn etwas nicht richtig funktioniert.
Mehrere Regeln zu Funktionseingaben sind wichtig, damit Sie alle Vorteile von Funktionen vollständig nutzen können.
Wichtig
Obwohl wir den Begriff Eingabe verwenden, um zu beschreiben, was in Funktionen eingegeben wird, werden diese Elemente in der Regel als Argumente oder Parameter bezeichnet. Aus Gründen der Konsistenz in diesem Modul bezeichnen wir Eingaben als Argumente.
Funktionen ohne Argumente
Um eine Funktion zu erstellen, verwenden Sie das def
-Schlüsselwort, gefolgt von einem Namen, Klammern und dann dem Textkörper mit dem Funktionscode:
def rocket_parts():
print("payload, propellant, structure")
In diesem Fall rocket_parts
ist der Name der Funktion. Auf diesen Namen folgen die leeren Klammern, die angeben, dass keine Argumente benötigt werden. Zuletzt folgt der Code, eingerückt um vier Leerzeichen. Um die Funktion zu verwenden, müssen Sie sie anhand ihres Namens mithilfe von Klammern aufrufen:
rocket_parts()
payload, propellant, structure
Die rocket_parts()
-Funktion nimmt keine Argumente an und gibt eine Anweisung aus. Wenn Sie einen Wert verwenden müssen, den eine Funktion zurückgibt, können Sie die Funktionsausgabe einer Variablen zuweisen:
output = rocket_parts()
payload, propellant, structure
output is None
True
Es mag überraschend erscheinen, dass der Wert für die output
-Variable None
ist. Dies liegt daran, dass die rocket_parts()
-Funktion nicht explizit einen Wert zurückgegeben hat. Wenn eine Funktion in Python nicht explizit einen Wert zurückgibt, gibt sie implizitNone
zurück. Wenn Sie die Funktion aktualisieren, um die Zeichenfolge zurückzugeben, anstatt sie auszugeben, weist die output
-Variable einen anderen Wert auf:
def rocket_parts():
return "payload, propellant, structure"
output = rocket_parts()
output
payload, propellant, structure
Wenn Sie den Wert einer Funktion verwenden müssen, muss die Rückgabe dieser Funktion explizit sein. Andernfalls wird None
zurückgegeben.
Hinweis
Sie müssen nicht immer die Rückgabe einer Funktion zuweisen. In den meisten Fällen, in denen eine Funktion keinen Wert (oder Werte) explizit zurückgibt, bedeutet dies, dass Sie den impliziten None
-Wert nicht zuweisen oder verwenden müssen, der zurückgegeben wird.
Erforderliche und optionale Argumente
In Python erfordern mehrere integrierte Funktionen Argumente. In einigen integrierten Funktionen sind Argumente optional. Integrierte Funktionen sind sofort verfügbar, sodass Sie sie nicht explizit importieren müssen.
Ein Beispiel für eine integrierte Funktion, die ein Argument erfordert, ist any()
. Diese Funktion nimmt ein iterierbares Element (z. B. eine Liste) an und gibt True
zurück, wenn ein iterierbares Element True
ist. Andernfalls wird False
zurückgegeben.
any([True, False, False])
True
any([False, False, False])
False
Wenn Sie any()
ohne Argumente aufrufen, wird eine hilfreiche Ausnahme ausgelöst. In der Fehlermeldung wird erläutert, dass Sie mindestens ein Argument benötigen:
any()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: any() takes exactly one argument (0 given)
Sie können überprüfen, ob einige Funktionen die Verwendung optionaler Argumente zulassen, indem Sie eine weitere integrierte Funktion namens str()
verwenden. Diese Funktion erstellt eine Zeichenfolge aus einem Argument. Wenn kein Argument übergeben wird, wird eine leere Zeichenfolge zurückgegeben:
str()
''
str(15)
'15'