Im Verlauf der Lehrveranstaltung wurden häufig Python Anweisungen wie die print-Funktion verwendet. Obwohl Sie diese anwenden können, ist das dahinterstehende Konzept von Anweisungen als Funktionen möglicherweise noch nicht vollständig klar. Dieser Abschnitt soll Ihnen dabei helfen, Python Funktionen besser zu verstehen und selbst zu programmieren.
Funktionen in Python helfen dabei, den Code strukturiert und übersichtlich zu gestalten. Sie können als separate Unterprogramme verstanden werden, die durch ihren Namen aufgerufen werden. Bei einem Aufruf werden alle Anweisungen in der Funktion nacheinander ausgeführt, bevor das Programm normal weiterläuft.
Die print-Funktion, ein häufiges Beispiel in Python, ist eine eingebaute Funktion. Das bedeutet, dass sie bereits von Python bereitgestellt wird und nicht selbst programmiert werden muss. Sie ermöglicht es, Ausgaben auf der Konsole zu erzeugen.
print("Das ist eine Ausgabe")
Neben eingebauten Funktionen wie print können Sie in Python auch eigene Funktionen definieren. Eine Funktion wird mit dem Schlüsselwort 'def' eingeleitet, gefolgt von einem frei wählbaren Namen und einem Klammerpaar.
def say_hello():
print("Hallo Hendrik")
print("Willkommen zurück")
Um eine definierte Funktion auszuführen, muss sie aufgerufen werden. Das geschieht durch die Angabe des Funktionsnamens gefolgt von einem Klammerpaar.
say_hello()
Die Einrückung in Python ist nicht nur ein Stilelement, sondern eine essentielle Syntaxregel. In Python definiert die Einrückung den Umfang einer Funktion, d.h., welche Zeilen zum Funktionskörper gehören.
Wenn Sie eine Funktion mit 'def' beginnen, gehören alle eingerückten Zeilen direkt nach der Funktionsdefinition zum Funktionskörper. Diese Zeilen werden ausgeführt, wenn die Funktion aufgerufen wird. Nicht eingerückte Zeilen gehören nicht mehr zur Funktion und markieren das Ende des Funktionskörpers.
def beispiel_funktion():
# Diese Zeile gehört zur Funktion
print("Innerhalb der Funktion")
# Diese Zeile gehört nicht zur Funktion
print("Außerhalb der Funktion")
Das korrekte Einrücken ist essentiell, da sonst der Code nicht wie beabsichtigt oder überhaupt nicht ausgeführt wird. In Python wird üblicherweise eine Einrückung von vier Leerzeichen verwendet.
Funktionen sind ein fundamentales Konzept in der Programmierung, das dazu beiträgt, Code effizient und effektiv zu gestalten. Sie ermöglichen es, Codeblöcke zu isolieren, die eine spezifische Aufgabe ausführen, wodurch der Code nicht nur einfacher zu verstehen und zu verwenden, sondern auch leichter zu testen und zu warten ist.
Durch die Verwendung von Funktionen kann vermieden werden, dass Code mehrfach geschrieben werden muss. Dies reduziert die Fehleranfälligkeit, da Änderungen nur an einer Stelle im Code vorgenommen werden müssen. Außerdem erleichtert es die Wartung des Programms, da Funktionen als eigenständige Module betrachtet werden können, die unabhängig voneinander entwickelt und optimiert werden können.
Um ein tieferes Verständnis und eine bessere Praxis in Python zu fördern, wird in zukünftigen Übungen und Beispielen der Fokus auf die Verwendung von Funktionen gelegt. Jedes Problem wird durch das Definieren und Aufrufen von Funktionen gelöst, um die Konzepte zu verinnerlichen und die Vorteile von modularem Code zu nutzen.
Das folgende Beispiel illustriert die Definition und Verwendung von Funktionen in Python:
def begruessung(name):
print(f"Hallo, {name}!")
def hauptprogramm():
begruessung("Alice")
begruessung("Bob")
# Hauptprogramm wird aufgerufen
hauptprogramm()
In diesem Beispiel wird eine Funktion 'begruessung' definiert, die einen Namen als Parameter nimmt und eine Begrüßung ausgibt. Eine weitere Funktion 'hauptprogramm' ruft die 'begruessung'-Funktion mit verschiedenen Namen auf. Das Hauptprogramm wird durch den Aufruf der 'hauptprogramm'-Funktion gestartet.
f"Hallo, {name}!" ist ein formatierter String, der den Wert der Variablen 'name' in den Text einbettet.Strukturieren Sie den folgenden Code neu, indem Sie eine Funktion erstellen, die eine einfache Rechnung ausführt und das Ergebnis ausgibt. Der Originalcode ist:
# Originalcode
x = 5
y = 10
ergebnis = x + y
print("Das Ergebnis der Addition ist:", ergebnis)
Schreiben Sie diesen Code neu, indem Sie eine Funktion verwenden, die keine Parameter annimmt und das Ergebnis direkt in der Funktion berechnet und ausgibt.
Strukturieren Sie den folgenden Code neu, indem Sie eine Funktion erstellen, die nach der Adresse des Benutzers fragt und diese dann ausgibt. Der Originalcode ist:
# Originalcode
name = input("Bitte geben Sie Ihren Namen ein: ")
adresse = input("Bitte geben Sie Ihre Adresse ein: ")
print("Name:", name)
print("Adresse:", adresse)
Schreiben Sie diesen Code neu, indem Sie eine Funktion erstellen, die die Benutzerdaten abfragt und in der Funktion ausgibt.
Schreiben Sie eine Funktion, die den Benutzer nach seinem Namen und seiner E-Mail-Adresse fragt und diese Informationen ausgibt. Die Funktion sollte keine Parameter benötigen und direkt die input()- und print()-Funktionen verwenden. Versuchen Sie, die erfassten Informationen in der Funktion selbst auszugeben.
Anleitung:
input() innerhalb der Funktion, um den Namen und die E-Mail-Adresse zu erfassen.print(), um die gesammelten Informationen direkt auszugeben.Schreiben Sie eine Funktion, die das Alter des Benutzers erfragt und eine einfache Bedingung verwendet, um zu bestimmen, ob der Benutzer volljährig ist oder nicht. Die Funktion sollte direkt die input()- und print()-Funktionen verwenden, ohne return zu nutzen.
Anleitung:
input(), um das Alter des Benutzers innerhalb der Funktion zu erfragen.if-Anweisung, um zu prüfen, ob der Benutzer 18 Jahre oder älter ist.print(), um eine entsprechende Nachricht auszugeben, je nachdem, ob der Benutzer volljährig ist oder nicht.Parameter sind spezielle Variablen in der Definition einer Funktion, die dazu dienen, Daten von außen aufzunehmen, wenn die Funktion aufgerufen wird. Sie ermöglichen es der Funktion, mit verschiedenen Eingaben zu arbeiten.
Das folgende Beispiel demonstriert, wie eine einfache Funktion mit einem Parameter definiert und verwendet wird:
def begruessung(name):
print("Hallo, " + name + "!")
begruessung("Stefan") # Ausgabe: Hallo, Stefan!
Die Funktion begruessung nimmt einen Parameter name an. Beim Aufruf der Funktion wird der String "Stefan" als Argument übergeben, wodurch die Begrüßung personalisiert ausgegeben wird.
In Python und vielen anderen Programmiersprachen wird das Schlüsselwort return verwendet, um einen Wert aus einer Funktion zurückzugeben. Sobald eine return-Anweisung erreicht wird, beendet sie die Funktion und liefert den Wert, der auf return folgt, an den Aufrufer zurück.
Dieses Beispiel demonstriert eine einfache Funktion, die eine Konstante zurückgibt. Es verdeutlicht, wie return verwendet wird, um einen spezifischen Wert aus der Funktion zu senden, was in diesem Fall die Zahl 5 ist. Die Rückgabe von Konstanten kann in Szenarien nützlich sein, in denen feste Werte erforderlich sind, um Berechnungen oder Zustandsprüfungen in anderen Teilen des Programms zu unterstützen.
def gib_fuenf_zurueck():
return 5
resultat = gib_fuenf_zurueck()
print(resultat) # Ausgabe: 5
Dieses Beispiel zeigt eine Funktion, die die Summe zweier Zahlen berechnet und zurückgibt. Die Verwendung von return ermöglicht es, das Ergebnis der Summenbildung an den Aufrufer zu übermitteln, der dieses Ergebnis dann weiterverwenden kann, beispielsweise für weitere Berechnungen oder Anzeigezwecke.
def addiere(a, b):
summe = a + b
return summe
ergebnis = addiere(3, 4)
print(ergebnis) # Ausgabe: 7
Dieses Beispiel illustriert, wie eine Funktion abhängig von einer Bedingung unterschiedliche Werte zurückgeben kann. Es ist ein nützliches Muster für Entscheidungsfindungen innerhalb von Funktionen, wobei je nach Bedingung unterschiedliche Ergebnisse zurückgegeben werden, die den weiteren Programmfluss beeinflussen können.
def ist_zahl_gerade(zahl):
if zahl % 2 == 0:
return "Gerade"
else:
return "Ungerade"
status = ist_zahl_gerade(10)
print(status) # Ausgabe: Gerade
Das Schlüsselwort return ist wesentlich, um Funktionen in Python effektiv zu nutzen, da es die Wiederverwendung und Modularität von Code ermöglicht.
Ziel: Strukturieren Sie den folgenden Code neu, indem Sie eine Funktion erstellen, die zwei Zahlen als Parameter aufnimmt und ihre Summe zurückgibt. 'Zurückgeben' bedeutet, dass das Ergebnis der Operation mittels return an den Aufrufer der Funktion übermittelt wird. Der Originalcode ist:
# Originalcode
x = 10
y = 20
ergebnis = x + y
print("Das Ergebnis der Addition ist:", ergebnis)
Erstellen Sie eine Funktion namens addiere, die x und y als Parameter nimmt und das Ergebnis zurückgibt. Anschließend wird dieses Ergebnis außerhalb der Funktion ausgegeben.
Ziel: Entwickeln Sie eine Funktion, die eine Liste von Zahlen als Parameter aufnimmt und die Summe aller Zahlen zurückgibt. Verwenden Sie eine for-Schleife innerhalb der Funktion.
Anweisungen: def, for, return, Liste
Schreiben Sie eine Funktion namens summiere_liste, die als Parameter eine Liste von Zahlen erhält und die Summe dieser Zahlen berechnet und zurückgibt.
Ziel: Erstellen Sie eine Funktion, die eine Zahl als Parameter nimmt und überprüft, ob diese Zahl gerade oder ungerade ist. Geben Sie das Ergebnis als String zurück.
Anweisungen: def, if, elif, else, return, Vergleiche
Implementieren Sie eine Funktion namens pruefe_gerade, die bestimmt, ob die übergebene Zahl gerade oder ungerade ist, und entsprechend "Gerade" oder "Ungerade" zurückgibt.
Ziel: Strukturieren Sie den folgenden Code neu, indem Sie ihn in mindestens drei separate Funktionen unterteilen. Der Originalcode ist:
# Originalcode
produkte = input("Geben Sie die Produkte ein, getrennt durch Kommas: ")
preise = input("Geben Sie die Preise ein, getrennt durch Kommas: ")
preis_liste = [float(preis) for preis in preise.split(',')]
gesamtpreis = sum(preis_liste)
print("Gesamtpreis: ", gesamtpreis)
if gesamtpreis > 100:
print("Sie erhalten einen Rabatt!")
else:
print("Kein Rabatt verfügbar.")
Teilen Sie diesen Prozess in mindestens drei Funktionen auf: