Python P11/12 zu Funktion distanz_2
Aufgabe 4
Schreiben Sie die Funktion distanz2
.
Diese ähnelt der Funktion distanz
von weiter oben, mit folgender Änderung:
Die Funktion akzeptiert zwei Parameter. Jeder dieser Parameter ist eine zwei-elementige Liste (je x und y).
Geben Sie die euklidische Distanz, also den Abstand, zwischen den zwei Punkten zurück.
1. Lösungsvorschlag
Jeder der beiden Parameter ist eine zwei-elementige Liste bestehend aus x
und y
.
Zur besseren Lesbarkeit werden diese in vier Variablen übertragen und dann ganz normal der Abstand berechnet.
import math
def distanz2(p1, p2):
x1 = p1[0]
x2 = p2[0]
y1 = p1[1]
y2 = p2[1]
d = math.sqrt((x2 - x1)**2 + (y2 - y1)**2)
return d
test(distanz2)
2. Lösungsvorschlag
Wie 1., aber es werden keine zusätzlichen Variablen verwendet.
Diese Variante ist schlechter lesbar.
import math
def distanz2(P,Q):
return math.sqrt((P[0] - Q[0]) ** 2 + (P[1] - Q[1]) ** 2)
test(distanz2)
Vielen Dank!
Mit freundlichen Grüßen
Lukas Meißner
2 Antworten
- Re: Python P11/12 zu Funktion distanz_2Hallo,also die Formel in der Funktion ist die Euklidische Distanz im zweidimensionalen (also Abstand zweier Punkte). Wurzel((x1-x2)² + (y1-y2)²)Bei der Funktion werden zwei Parameter übergeben, welche jeweils 2-elementige Listen sind, also Listen mit 2 Feldern.Das erste Listenfeld ist jeweils die X-Koordinate des Punktes und das zweite Listenfeld die Y-Koordinate. Listen indiziert man mit liste[INDEX] wobei INDEX eine Zahl ab 0 ist (0 = 1. Feld, 1 = 2. Feld usw)Daher mache ich: x1 = p1[0], y1 = p1[1]. Damit extrahiere ich quasi die zwei Listenfelder und weise diesen für bessere Lesbarkeit eine Variable zu.Analog für den zweiten Parameter: x2 = p2[0], y2 = p2[1].
Beitrag von Lukas Meißner
Re: Python P11/12 zu Funktion distanz_2Hallo Herr Kind,Ok, danke für die Ausführung.Vielen Dank