Python-Funktionshandbuch mit Beispielen

Einführung in Funktionen in Python

Mit einer Funktion können Sie einen wiederverwendbaren Codeblock definieren, der in Ihrem Programm mehrmals ausgeführt werden kann.

Mit Funktionen können Sie modularere und trockenere Lösungen für komplexe Probleme erstellen.

Während Python bereits viele integrierte Funktionen wie print()und len()bietet, können Sie auch Ihre eigenen Funktionen definieren, die in Ihren Projekten verwendet werden sollen.

Einer der großen Vorteile der Verwendung von Funktionen in Ihrem Code besteht darin, dass die Gesamtzahl der Codezeilen in Ihrem Projekt reduziert wird.

Syntax

In Python weist eine Funktionsdefinition die folgenden Funktionen auf:

  1. Das Schlüsselwort def
  2. ein Funktionsname
  3. Paranthesis '()' und innerhalb der Paranthesis-Eingabeparameter, obwohl die Eingabeparameter optional sind.
  4. ein Doppelpunkt ':'
  5. ein Codeblock, der ausgeführt werden soll
  6. eine return-Anweisung (optional)
# a function with no parameters or returned values def sayHello(): print("Hello!") sayHello() # calls the function, 'Hello!' is printed to the console # a function with a parameter def helloWithName(name): print("Hello " + name + "!") helloWithName("Ada") # calls the function, 'Hello Ada!' is printed to the console # a function with multiple parameters with a return statement def multiply(val1, val2): return val1 * val2 multiply(3, 5) # prints 15 to the console

Funktionen sind Codeblöcke, die einfach durch Aufrufen der Funktion wiederverwendet werden können. Dies ermöglicht eine einfache, elegante Wiederverwendung von Code, ohne Codeabschnitte explizit neu zu schreiben. Dies macht Code sowohl lesbarer als auch erleichtert das Debuggen und begrenzt Tippfehler.

Funktionen in Python werden mit dem defSchlüsselwort erstellt, gefolgt von einem Funktionsnamen und Funktionsparametern in Klammern.

Eine Funktion gibt immer einen Wert zurück. Das returnSchlüsselwort wird von der Funktion verwendet, um einen Wert zurückzugeben. Wenn Sie keinen Wert zurückgeben möchten, wird der Standardwert Nonezurückgegeben.

Der Funktionsname wird zum Aufrufen der Funktion verwendet, wobei die erforderlichen Parameter in Klammern übergeben werden.

# this is a basic sum function def sum(a, b): return a + b result = sum(1, 2) # result = 3

Sie können Standardwerte für die Parameter definieren. Auf diese Weise interpretiert Python, dass der Wert dieses Parameters der Standardwert ist, wenn keiner angegeben ist.

def sum(a, b=3): return a + b result = sum(1) # result = 4

Sie können die Parameter in der gewünschten Reihenfolge unter Verwendung des Parameternamens übergeben.

result = sum(b=2, a=2) # result = 4

Es ist jedoch nicht möglich, ein Schlüsselwortargument vor einem Nicht-Schlüsselwortargument zu übergeben

result = sum(3, b=2) #result = 5 result2 = sum(b=2, 3) #Will raise SyntaxError

Funktionen sind auch Objekte, sodass Sie sie einer Variablen zuweisen und diese Variable wie eine Funktion verwenden können.

s = sum result = s(1, 2) # result = 3

Anmerkungen

Wenn eine Funktionsdefinition Parameter enthält, müssen Sie beim Aufrufen der Funktion dieselbe Anzahl von Parametern angeben.

print(multiply(3)) # TypeError: multiply() takes exactly 2 arguments (0 given) print(multiply('a', 5)) # 'aaaaa' printed to the console print(multiply('a', 'b')) # TypeError: Python can't multiply two strings

Der Codeblock, den die Funktion ausführen wird, enthält alle Anweisungen, die innerhalb der Funktion eingerückt sind.

def myFunc(): print('this will print') print('so will this') x = 7 # the assignment of x is not a part of the function since it is not indented

Innerhalb einer Funktion definierte Variablen existieren nur im Rahmen dieser Funktion.

def double(num): x = num * 2 return x print(x) # error - x is not defined print(double(4)) # prints 8

Python interpretiert den Funktionsblock nur, wenn die Funktion aufgerufen wird, und nicht, wenn die Funktion definiert ist. Selbst wenn der Funktionsdefinitionsblock einen Fehler enthält, weist der Python-Interpreter darauf nur hin, wenn die Funktion aufgerufen wird.

Schauen wir uns nun einige spezifische Funktionen mit Beispielen an.

max () Funktion

max() ist eine in Python 3 integrierte Funktion. Sie gibt das größte Element in einem iterablen oder das größte von zwei oder mehr Argumenten zurück.

Argumente

Diese Funktion verwendet zwei oder mehr Zahlen oder jede Art von iterierbarem Argument. Während wir eine Iterable als Argument angeben, müssen wir sicherstellen, dass alle Elemente in der Iterable vom gleichen Typ sind. Dies bedeutet, dass wir keine Liste übergeben können, in der sowohl Zeichenfolgen- als auch Ganzzahlwerte gespeichert sind. Syntax: max (iterable, * iterables [, key, default]) max (arg1, arg2, * args [, key])

Gültige Argumente:

max(2, 3) max([1, 2, 3]) max('a', 'b', 'c')

Ungültige Argumente:

max(2, 'a') max([1, 2, 3, 'a']) max([])

Rückgabewert

Das größte Element in der Iterable wird zurückgegeben. Wenn zwei oder mehr Positionsargumente angegeben werden, wird das größte der Positionsargumente zurückgegeben. Wenn die Iterable leer ist und die Standardeinstellung nicht angegeben ist, ValueErrorwird a ausgelöst.

Codebeispiel

print(max(2, 3)) # Returns 3 as 3 is the largest of the two values print(max(2, 3, 23)) # Returns 23 as 23 is the largest of all the values list1 = [1, 2, 4, 5, 54] print(max(list1)) # Returns 54 as 54 is the largest value in the list list2 = ['a', 'b', 'c' ] print(max(list2)) # Returns 'c' as 'c' is the largest in the list because c has ascii value larger then 'a' ,'b'. list3 = [1, 2, 'abc', 'xyz'] print(max(list3)) # Gives TypeError as values in the list are of different type #Fix the TypeError mentioned above first before moving on to next step list4 = [] print(max(list4)) # Gives ValueError as the argument is empty

Code ausführen

Offizielle Dokumente

min () Funktion

min() ist eine in Python 3 integrierte Funktion. Sie gibt das kleinste Element in einem iterierbaren oder das kleinste von zwei oder mehr Argumenten zurück.

Argumente

Diese Funktion verwendet zwei oder mehr Zahlen oder jede Art von iterierbarem Argument. Während wir eine Iterable als Argument angeben, müssen wir sicherstellen, dass alle Elemente in der Iterable vom gleichen Typ sind. Dies bedeutet, dass wir keine Liste übergeben können, in der sowohl Zeichenfolgen- als auch Ganzzahlwerte gespeichert sind.

Gültige Argumente:

min(2, 3) min([1, 2, 3]) min('a', 'b', 'c')

Ungültige Argumente:

min(2, 'a') min([1, 2, 3, 'a']) min([])

Rückgabewert

Das kleinste Element in der Iterable wird zurückgegeben. Wenn zwei oder mehr Positionsargumente angegeben werden, das kleinste der Positionsargumente

ist zurück gekommen. Wenn die Iterable leer ist und die Standardeinstellung nicht angegeben ist, wird ein ValueError ausgelöst.

Codebeispiel

print(min(2, 3)) # Returns 2 as 2 is the smallest of the two values print(min(2, 3, -1)) # Returns -1 as -1 is the smallest of the two values list1 = [1, 2, 4, 5, -54] print(min(list1)) # Returns -54 as -54 is the smallest value in the list list2 = ['a', 'b', 'c' ] print(min(list2)) # Returns 'a' as 'a' is the smallest in the list in alphabetical order list3 = [1, 2, 'abc', 'xyz'] print(min(list3)) # Gives TypeError as values in the list are of different type #Fix the TypeError mentioned above first before moving on to next step list4 = [] print(min(list4)) # Gives ValueError as the argument is empty

Code ausführen

Offizielle Dokumente

divmod () Funktion

divmod()ist eine in Python 3 integrierte Funktion, die den Quotienten und den Rest zurückgibt, wenn die Zahl adurch die Zahl geteilt wird b. Es werden zwei Zahlen als Argumente a& verwendet b. Das Argument kann keine komplexe Zahl sein.

Streit

Es werden zwei Argumente a& b- eine Ganzzahl oder eine Dezimalzahl benötigt. Es kann keine komplexe Zahl sein.

Rückgabewert

Der Rückgabewert ist das Paar positiver Zahlen, bestehend aus Quotient und Rest, erhalten durch Teilen adurch b. Bei gemischten Operandentypen werden Regeln für binäre arithmetische Operatoren angewendet.

Für Ganzzahlargumente ist der Rückgabewert derselbe wie (a // b, a % b).

Für Dezimalzahl Argumente wird Rückgabewert gleich wie (q, a % b), in der qRegel ist Math.floor (a / b) kann aber 1 kleiner sein als die.

Codebeispiel

print(divmod(5,2)) # prints (2,1) print(divmod(13.5,2.5)) # prints (5.0, 1.0) q,r = divmod(13.5,2.5) # Assigns q=quotient & r= remainder print(q) # prints 5.0 because math.floor(13.5/2.5) = 5.0 print(r) # prints 1.0 because (13.5 % 2.5) = 1.0

REPL It!

Offizielle Dokumente

Hex (x) -Funktion

hex(x) ist eine in Python 3 integrierte Funktion zum Konvertieren einer Ganzzahl in eine hexadezimale Kleinbuchstabenzeichenfolge mit dem Präfix „0x“.

Streit

Diese Funktion benötigt ein Argument, xdas vom Typ Integer sein sollte.

Rückkehr

Diese Funktion gibt eine hexadezimale Zeichenfolge in Kleinbuchstaben mit dem Präfix „0x“ zurück.

Beispiel

print(hex(16)) # prints 0x10 print(hex(-298)) # prints -0x12a print(hex(543)) # prints 0x21f

Code ausführen

Offizielle Dokumentation

len () Funktion

len()ist eine in Python 3 integrierte Funktion. Diese Methode gibt die Länge (die Anzahl der Elemente) eines Objekts zurück. Es braucht ein Argument x.

Argumente

It takes one argument, x. This argument may be a sequence (such as a string, bytes, tuple, list, or range) or a collection (such as a dictionary, set, or frozen set).

Return Value

This function returns the number of elements in the argument which is passed to the len() function.

Code Sample

list1 = [123, 'xyz', 'zara'] # list print(len(list1)) # prints 3 as there are 3 elements in the list1 str1 = 'basketball' # string print(len(str1)) # prints 10 as the str1 is made of 10 characters tuple1 = (2, 3, 4, 5) # tuple print(len(tuple1)) # prints 4 as there are 4 elements in the tuple1 dict1 = {'name': 'John', 'age': 4, 'score': 45} # dictionary print(len(dict1)) # prints 3 as there are 3 key and value pairs in the dict1

Run Code

Official Docs

Ord function

ord() is a built-in function in Python 3, to convert the string representing one Unicode character into integer representing the Unicode code of the character.

Examples:

>>> ord('d') 100 >>> ord('1') 49

chr function

chr() is a built-in function in Python 3, to convert the integer representing the Unicode code into a string representing a corresponding character.

Examples:

>>> chr(49) '1'

One thing is to be noted that, if the integer value passed to chr() is out of range then, a ValueError will be raised.

>>> chr(-10) 'Traceback (most recent call last): File "", line 1, in  chr(-1) ValueError: chr() arg not in range(0x110000)'

input() functions

Many a time, in a program we need some input from the user. Taking inputs from the user makes the program feel interactive. In Python 3, to take input from the user we have a function input(). If the input function is called, the program flow will be stopped until the user has given an input and has ended the input with the return key. Let’s see some examples:

When we just want to take the input:

This will just give a prompt without any message

inp = input()

Run Code

To give a prompt with a message:

promptwithmessage = input(’‘)

_

The ’_’ in the output is the prompt

Run Code

3. When we want to take an integer input:

number = int(input('Please enter a number: '))

Run Code

If you enter a non integer value then Python will throw an error ValueError. So whenever you use this, please make sure that you catch it too. Otherwise, your program will stop unexpectedly after the prompt.

number = int(input('Please enter a number: ')) # Please enter a number: as # Enter a string and it will throw this error # ValueError: invalid literal for int() with base 10 'as'

4. When we want a string input:

string = str(input('Please enter a string: '))

Run Code

Though, inputs are stored by default as a string. Using the str() function makes it clear to the code-reader that the input is going to be a ‘string’. It is a good practice to mention what type of input will be taken beforehand.

Official Docs

How to call a function in Python

A function definition statement does not execute the function. Executing (calling) a function is done by using the name of the function followed by parenthesis enclosing required arguments (if any).

>>> def say_hello(): ... print('Hello') ... >>> say_hello() Hello

The execution of a function introduces a new symbol table used for the local variables of the function. More precisely, all variable assignments in a function store the value in the local symbol table; whereas variable references first look in the local symbol table, then in the local symbol tables of enclosing functions, then in the global symbol table, and finally in the table of built-in names. Thus, global variables cannot be directly assigned a value within a function (unless named in a global statement), although they may be referenced.

>>> a = 1 >>> b = 10 >>> def fn(): ... print(a) # local a is not assigned, no enclosing function, global a referenced. ... b = 20 # local b is assigned in the local symbol table for the function. ... print(b) # local b is referenced. ... >>> fn() 1 20 >>> b # global b is not changed by the function call. 10

The actual parameters (arguments) to a function call are introduced in the local symbol table of the called function when it is called; thus, arguments are passed using call by value (where the value is always an object reference, not the value of the object). When a function calls another function, a new local symbol table is created for that call.

>>> def greet(s): ... s = "Hello " + s # s in local symbol table is reassigned. ... print(s) ... >>> person = "Bob" >>> greet(person) Hello Bob >>> person # person used to call remains bound to original object, 'Bob'. 'Bob'

The arguments used to call a function cannot be reassigned by the function, but arguments that reference mutable objects can have their values changed:

>>> def fn(arg): ... arg.append(1) ... >>> a = [1, 2, 3] >>> fn(a) >>> a [1, 2, 3, 1]