Daten umformen und verbinden · Übung
Entpacke zusammengehörige Werte
Die vorige Lektion hat Tupel als kleine, geordnete Gruppen mit festem Aufbau vorgestellt. Ihr Ergebnistupel hielt den Namen einer lernenden Person, die Punktzahl und die Gesamtzahl zusammen:
result = ("Mina", 8, 10)
Eine Funktion kann einen weiteren Datensatz mit drei Elementen bauen und zurückgeben:
def lesson_values(lesson):
return (
lesson["title"],
lesson["chapter"],
lesson["minutes"],
)
Eine Variable kann das gesamte zurückgegebene Tupel erhalten:
details = lesson_values(lesson)
Der Zugriff über Indizes funktioniert, aber die Bedeutung jeder Position ist nicht sichtbar:
print(details[0], details[1], details[2])
Wenn wir die einzelnen Werte verwenden müssen, weist Entpacken ihre Positionen in einem Schritt beschreibenden Namen zu:
title, chapter, minutes = lesson_values(lesson)
print(f"Chapter {chapter}: {title} ({minutes} minutes)")
Python nimmt das erste Element für title, das zweite für chapter und das dritte für minutes. Die Übung wendet dieselbe Technik auf das Quizergebnistupel aus der vorigen Lektion an.
Die Strukturen müssen zusammenpassen
Die Anzahl der Namen muss der Anzahl der Werte entsprechen:
score, total = (8, 10)
Zu viele oder zu wenige Namen lösen einen ValueError aus. Diese Strenge ist nützlich, wenn das Tupel einen bekannten Aufbau hat. Eine Abweichung zeigt, dass Aufrufer und Funktion nicht mehr übereinstimmen.
Entpacken funktioniert auch direkt in einer Schleife:
Was gibt dieser Code aus?
point = (3, 7)
x, y = point
print(y)Formatiere ein Ergebnistupel
Vervollständige format_result, indem du sein Tupel mit drei Elementen entpackst. Verwende die Namen in der geforderten Reihenfolge und gib eine lesbare Zeile mit der Punktzahl zurück.
Aufgabe
Vervollständige format_result.
Entpacke
resultinlearner,scoreundtotal.Gib
learner: score/totalzurück.Greife nicht mit numerischen Indizes auf das Tupel zu.
Die verdeckten Prüfungen übergeben ein neues Tupel mit drei Elementen.