Parametrisierung in Python (Parametrisierung in Python), Lektion, Seite 723915
https://www.purl.org/stefan_ram/pub/parametriesierung_python (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
Python-Kurs

Parametrisierung in Python 

Einführendes Beispiel

Hinter dem Namen einer Funktion kann in der Definition ein eingeklammerter Bezeichner geschrieben werden.
Dieser Name wird Parameter  genannt.
Eine Funktion kann auch mit einem Parameter definiert werden. Ein Parameter ist ein Bezeichner in den runden Klammern der Funktionsdefinition, der dann in der Suite der Funktion so verwendet werden kann, als hätte er einen Wert.

Diese Funktion kann dann mit einem Argument aufgerufen werden. Durch solch einen Aufruf wird dann eine Inkarnation (das heißt: eine Kopie) der Funktion angelegt, in welcher der Parameter in der Suite der Funktion für den Argumentwert steht.

Protokoll
f = lambda x: print( x )


f( 2 )
2
Protokoll
def f( x ):
print( x )


f( 2 )
2

Bei einem Aufruf einer Funktion mit einem Parameter wird eine Inkarnation der Funktion angelegt, in welcher der Parameter zunächst an den Wert des Arguments des Aufrufs gebunden ist, so als ob der Wert des Parameters durch eine Bindung an den Wert des Arguments gebunden wurden. Im Falle des obigen Beispiels wäre die Bindungsanweisung beispielsweise »x = 2«.

Besonders wichtig ist auch der Fall parametrisierter Funktionen mit einem Rückgabewert. Wir zeigen ein Beispiel.

Protokoll
def f( x ):
return 10 * x


print( f( 2 ))
20

Zeichnen einer Flagge

Flagge ohne Parameter

from turtle import *

W = 99
D = 2*W

def rect():
begin_fill()
forward( W ); right( 90 );
forward( D ); right( 90 );
forward( W ); right( 90 );
forward( D ); right( 90 );
end_fill()
forward( W )

penup()

bgcolor( 0.7, 0.7, 0.7 )

left( 90 )
forward( W )
right( 90 )
backward( W*1.5 )

colormode( 255 )

fillcolor( 0x00, 0x55, 0xA4 ); rect()
fillcolor( 0xFF, 0xFF, 0xFF ); rect()
fillcolor( 0xEF, 0x54, 0x31 ); rect()

hideturtle()

Flagge mit Parametern

from turtle import *

W = 99
D = 2*W

def rect( r, g, b ):
fillcolor( r, g, b )
begin_fill()
forward( W ); right( 90 );
forward( D ); right( 90 );
forward( W ); right( 90 );
forward( D ); right( 90 );
end_fill()
forward( W )

penup()

bgcolor( 0.7, 0.7, 0.7 )

left( 90 )
forward( W )
right( 90 )
backward( W*1.5 )

colormode( 255 )

rect( r=0x00, g=0x55, b=0xA4 )
rect( r=0xFF, g=0xFF, b=0xFF )
rect( r=0xEF, g=0x54, b=0x31 )

hideturtle()

Übungsfragen

?   Übungsfrage 0

Wie heißt die im folgenden definierte Funktion?

Protokoll
def f( x ):
print( x )

?   Übungsfrage 1

Wie heißt der Parameter der im folgenden definierte Funktion?

Protokoll
def f( x ):
print( x )

Übungsaufgaben

Für alle Funktionsdefinitionen in diesem Kapitel soll »def« verwendet werden und nicht »= lambda«.

/   Umbenennung einer Funktion (30 ″) ⃖

Kopieren Sie den folgenden Quelltext und ändern Sie in der Kopie dann den Namen der Funktion in »g«.

Bei dieser Aufgabe sollen möglichst wenig Zeichen des vorgegebenen Quelltextes geändert werden. Das Ergebnis soll weiterhin nur aus einer Funktionsdefinition mit einer print-Anweisung als Suite bestehen.

Quelltext
def f( x ):
print( x )

/   Umbenennung eines Parameters (Refaktor) (1 ′) ⃖

Kopieren Sie den folgenden Quelltext und ändern Sie in der Kopie dann den Namen des Parameters in »a«.

Es soll sich um einen Refaktor  handeln, das heißt, die Funktion soll weiterhin  ihren Argumentwert ausgeben.

Quelltext
def f( x ):
print( x )

/   Schreiben einer Funktionsdefinition mit einem Parameter (2 ′)

Schreiben Sie eine def-Definition einer Funktion »h«, die einen Parameter »p« hat und als Suite nur »pass« enthält.

/   Schreiben einer Funktionsdefinition mit einem Parameter (1 ′)

Schreiben Sie eine def-Definition einer Funktion »w«, die einen Parameter »n« hat und als Suite nur »print( n )« enthält.

 

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram723915 stefan_ram:723915 Parametrisierung in Python Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd723915, slrprddef723915, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/parametriesierung_python