Mehrere Parameter in Python (Mehrere Parameter in Python), Lektion, Seite 724008
https://www.purl.org/stefan_ram/pub/mehrere_parameter_python (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
Python-Kurs

Mehrfache Parameter in Python 

Mehrfache Parameter

Es ist auch möglich, einer Funktion mehrere  Parameter zu geben. Dazu müssen die Parameternamen in den runden Klammern durch Kommata getrennt werden.

main.py

def summe( x, y ):
return x + y

print( summe( 2, 10 ))

Protokoll
12

Etikettierungen mit den Parameternamen sind bei in Python  geschriebenen Funktionen immer möglich. Dabei ist die Reihenfolge der Argumente dann egal.

main.py

from math import pi

def kreiszylinder_volumen( radius, hoehe ):
return radius * radius * pi * hoehe

print( kreiszylinder_volumen( 2, 3 ))

print( kreiszylinder_volumen( radius=2, hoehe=3 ))

print( kreiszylinder_volumen( hoehe=3, radius=2 ))

print( kreiszylinder_volumen( hoehe=2, radius=3 ))

Protokoll
37.69911184307752
37.69911184307752
37.69911184307752
56.548667764616276

ℛ Stilregel Die Verwendung von etikettierten Argumenten erhöht die Lesbarkeit des Quelltextes, insbesondere bei Funktionen mit mehreren Parametern. Deswegen sollten diese bei Funktionen mit mehreren Argumenten möglichst verwendet werden.

Übungsaufgaben

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

/   Übungsaufgabe 0

Schreiben Sie eine def-Definition einer Funktion mit zwei Parametern, von denen der erste eine Zeit in Minuten und der zweite eine Zeit in Sekunden angeben soll. Die Funktion soll die Summe der beiden Zeiten in Sekunden zurückgeben.

(Was passiert, wenn die Funktion mit den Argumenten »'m'« und »'s'« aufgerufen wird?)

✕ Es gibt kein Testbeispiel (Aufrufbeispiel) zu dieser Aufgabe, da die Aufgabenstellung alleine bereits ausreichend verständlich ist und das Verständnis der in der Aufgabenstellung verwendeten Fachsprache geübt werden soll.

/   Übungsaufgabe 1

Schreiben Sie eine def-Definition einer Funktion »sum2«, die für zwei ganzahlige Argumente deren Summe ergibt.

Gewünschtes Verhalten

x = sum2( 2, 7 )

print( 'x =', x )

x = 9

(Es gibt schon eine Standardfunktion  namens »sum«. Daher sollte der Name »sum« möglichst nicht für etwas anderes verwendet werden.)

Eine Standardfunktion ist eine in der Standardbibliothek  definierte Funktion. Die Standardbibliothek von Python  enthält verschiedene nützliche Definitionen von Namen und gehört zur Programmiersprache Python.

/   Übungsaufgabe 2

Schreiben Sie eine def-Definition einer Funktion »prod«, die für zwei ganzahlige Argumente deren Produkt ausgibt.

Gewünschtes Verhalten
x = prod( 2, 7 )
14
print( 'x =', x )
x = None

/   Übungsaufgabe 3

Schreiben Sie eine def-Definition einer Funktion »dist«, die für zwei Gleitkommazahlen deren Abstand (auf dem Zahlenstrahl) ergibt.

Gewünschtes Verhalten

x = dist( 7, 2 )

print( 'x =', x )

x = 5

/   Übungsaufgabe 4

Schreiben Sie eine def-Definition einer Funktion »KMI«, die für eine Körpermasse und eine Körpergröße den Körper-Masse-Index berechnet.

/   Übungsaufgabe

Schreiben Sie eine def-Definition für eine Funktion welche den Buchstaben X an eine bestimmte Stelle der Zeichenfläche schreibt und rufen Sie diese mehrfach auf, um den Buchstaben X an verschiedene Stellen des Bildschirmes zu zeichen.

/   Übungsaufgabe

Schreiben Sie eine def-Definition für eine Funktion welche den Buchstaben X in einer bestimmten Größe an eine bestimmte Stelle der Zeichenfläche schreibt und rufen Sie diese mehrfach auf, um den Buchstaben X in verschiedenen Größen an verschiedene Stellen des Bildschirmes zu zeichen.

/   Übungsaufgabe

Schreiben Sie eine def-Definition für eine Funktion welche die Flagge von Georgien zeichnet.

/   USA-Körpergröße (10′)

In einem Lied heißt es:

Zitat
I'm only five foot one.
Zitat (Übersetzt)
Ich bin nur fünf Fuß und einen Zoll groß.

Schreiben Sie eine def-Anweisung für die Definition einer Funktion ›meter‹, welche Größenangaben wie “five foot one ” aus den USA in Meter umrechnet. Diese Funktion soll zwei Zahlen als Argumente akzeptieren, nämlich die Zahl vor “foot ” («5») und die Zahl nach “foot ” («1») und die Körpergröße in Metern («1.55») ergeben.

Beispiel

meter( 5, 1 )

1.5543999999999997

/   USA-Körpergröße 1 (10′)

Schreiben Sie eine def-Anweisung für die Definition einer Funktion ›foot‹, welche Größenangaben in Zentimeter entgegennimmt und als Ergebnis die gleiche Größe in Fuß und Zoll zurückgibt (als ein Paar [d.h. 2-Tupel] zweier Zahlenwerte).

Beispiel

foot( 1.73 )

( 5, 8.11023622047244 )

/   Blindes Refaktorieren *

Man kann einen Quelltext refaktorieren, ohne alle Details des Quelltextes zu verstehen.

Wir haben noch nicht die Bedeutung aller Teile des folgenden Quelltextes gelernt, können aber trotzdem schon einige Refaktoren auf ihn anwenden!

Der letzte und vorletzte Absatz des folgenden Quelltextes (beginnend mit »set0« beziehungsweise »set1«) sind einander sehr ähnlich. Überarbeiten Sie den Quelltext so, daß diese Wiederholung vermieden wird. – Das Skript sollte nach dem Refaktorieren kürzer sein.

main.py

import re


text0= '''
Kennt jemand einen Photographen?
'''[1:][:-1];

text1='''
Hallo, ich suche Photographen!
'''[1:][:-1]

stop = { 'Hallo', 'ich', 'suche' }

set0 = set()
for word in re.finditer( r'[^ :,.!?]+', text0 ):
set0.add( word.group( 0 ))

set1 = set()
for word in re.finditer( r'[^ :,.!?]+', text1 ):
set1.add( word.group( 0 ))

print( set0.intersection( set1 ).difference( stop ))

Hinweis In dem Ergebnis des Refaktorierens könnte die folgende Zeile vorkommen.

Möglicher Ausschnitt aus dem Ergebnis
print( words( text0 ).intersection( words( text1 )).difference( stop ))

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 stefanram724008 stefan_ram:724008 Mehrere Parameter in Python Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd724008, slrprddef724008, 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/mehrere_parameter_python