- Nutze alle Lernfunktionen, wie Tests, Quizze und Umfragen.
- Schreibe Beiträge und tausche dich in unseren Foren aus.
- In einigen Lernangeboten bestätigen wir dir die Teilnahme.
AI.Lab
Kursthemen
-
-
Tupel
Wir wollen nun mithilfe der
math
-Bibliothek eine Funktion schreiben, die uns die Lösungen für die Nullstellen einer quadratischen Gleichung ausgibt.import math def pq_Formel(p,q): # x**2 + px + q = 0, p und q werden übergeben wurzelterm = math.sqrt((p/2)**2-q) # Berechnung des Wurzelterms der pq-Formel result1 = -p/2 + wurzelterm # Berechnung der Ergebnisse result2 = -p/2 - wurzelterm print(f"Die Lösungen sind {result1} und {result2}") # Ausgabe der Ergebnisse p=2 q=-8 pq_Formel(p,q) # Funktionsaufruf
Das hat geklappt und die Lösungen wurden korrekt ausgegeben. Was machen wir allerdings, wenn anschließend mit den Ergebnissen noch weiter gerechnet werden soll? Mit unserer Funktion können wir nur einen Rückgabewert zurückgeben.
-
Tupel
Deshalb gibt es in Python den Datentyp
Tupel
. Ein Tupel ist eineimmutable
, also unveränderliche Sequenz von Elementen. Wir können also ein Tupel erstellen, dass die beiden Lösungen als Elemente enthält und dieses mit der Funktion zurückgeben.import math def pq_Formel(p,q): wurzelterm = math.sqrt((p/2)**2-q) # Berechnung des Wurzelterms der pq-Formel result1 = -p/2+wurzelterm # Berechnung der Ergebnisse result2 = -p/2-wurzelterm results= (result1, result2) # Erstellung des Tupels return results # Rückgabe des Tupels #return (-p/2+wurzelterm, -p/2-wurzelterm) # macht das gleiche wie die oberen vier Zeilen in einem Schritt p=2 q=-8 # Abspeichern in den Werten x1 und x2. (x1, x2) = pq_Formel(p,q) print(f"Die Lösungen von x^2 + {p}x + {q} = 0 liegen bei {x1} und {x2}") # Alternative Ausgabe durch Zugriff mit Indizes mytuple = pq_Formel(p,q) print(f"Die Lösungen von x^2 + {p}x + {q} = 0 liegen bei {mytuple[0]} und {mytuple[1]}")
-
Tupel können auch Elemente von verschiedenen Typen enthalten. So könnte ein Tupel zu einem Datenbankeintrag eines Nutzers so aussehen:
def get_user_info(user_id): # Annahme: Hier wird der Benutzer mit der gegebenen user_id aus einer Datenbank abgerufen username = "JohnDoe" age = 30 email = "john@example.com" points = 1000.5 isEmployee = False return (username, age, email, points, isEmployee) # Rückgabe aller Daten als Tupel # Beispielaufruf user_id = 123 user_info = get_user_info(user_id) print(user_info) # Ausgabe: ('JohnDoe', 30, 'john@example.com', 1000)
Somit können wir Strings, Integer, Floats und einen Boolean mithilfe von nur einem
return
Wert zurückgeben. Die Menge an Elementen im Tupel ist dabei nicht limitiert.
-