For-Schleife arbeitet nicht richtig

Code-Stücke können hier veröffentlicht werden.
Antworten
Phineas
User
Beiträge: 4
Registriert: Dienstag 15. Juni 2021, 11:12

Guten Tag,
ich habe das Problem, dass die for-Schleife nicht so arbeitet wie ich mir das vorstelle.
Ich muss eine Funktion auf eine Liste anwenden. Der Wert P2 soll nach und nach alle Werte in der liste_Geo annehmen und die Function geodist soll ausgeführt werden. Danach sollen die sieben geringsten Werte für die Variable "Entfernung" ausgegeben werden.
hat da jemand eine Idee?

for Werte in liste_Geo:
if __name__=="__main__":
P1 = Eingabe
P2 = liste_Geo
Entfernung = round(float(geodist(P1, P2)),1)
liste_Abstand = []
liste_Abstand.append(Entfernung)
x = min(liste_Abstand)
for i in range(7):
print(f'''{i+1}. Rang:
Entfernung: {x} km
Ort: {liste_Ort}
Name: {liste_Bauwerke}
Zustandnote: {liste_Zustandsnote}
Link: {liste_Link}
---------------------

''')

Vielen dank im Voraus
Sirius3
User
Beiträge: 17703
Registriert: Sonntag 21. Oktober 2012, 17:20

Was stellst Du Dir denn vor?
Es gibt ja wahrscheinlich eine Fehlermeldung. Wie lautet die?
Oder was hast Du Dir für jede Zeile,die Du geschrieben hast, gedacht?
`Eingabe` ist nirgends definiert. `Werte` wird gar nicht benutzt. `liste_Abstand` enthält immer nur einen Wert, davon das Minimum ist nicht sehr spannend.
Phineas
User
Beiträge: 4
Registriert: Dienstag 15. Juni 2021, 11:12

Ich habe hier nur einen kleinen Ausschnitt aus dem Programm hochgeladen.
"Eingabe" ist definiert.

Eine Fehlermeldung gibt es nicht, aber wie du sagst enthält "liste_Abstand" immer nur einen Wert und das soll nicht so sein, die Liste soll alle aus der Funktion Geodist berechneten Werte enthalten.

Und P2 soll jeden Wert aus liste_Geo annehmen. In der CSV-Datei sind 52180 Zeilen und diese sind in liste_Geo zwischen gespeichert
__deets__
User
Beiträge: 14480
Registriert: Mittwoch 14. Oktober 2015, 14:29

Du berechnest aber nur einen Wert. Wo sollen dann mehr herkommen?

Es ist keine gute Idee, den Code so einzukürzen, wenn du offensichtlich mit Python noch auf dem Kriegsfuß stehst. Poste den gesamten Code, in den dafür vorgesehenen Code Tags (</>-Knopf im vollständigen Editor).
Benutzeravatar
YAPD
User
Beiträge: 120
Registriert: Dienstag 27. Juli 2021, 23:23
Wohnort: Frankfurt am Main

Hey,

Wie sieht deine Liste denn aus ? Und was machst du mit "Eingabe" bei Aufruf von "geodist" ?
So können wir dir schwer helfen.

VG
YAPD
-----
Yet Another Python Developer
rogerb
User
Beiträge: 878
Registriert: Dienstag 26. November 2019, 23:24

@Phineas,
Ich muss eine Funktion auf eine Liste anwenden. Der Wert P2 soll nach und nach alle Werte in der liste_Geo annehmen und die Function geodist soll ausgeführt werden. Danach sollen die sieben geringsten Werte für die Variable "Entfernung" ausgegeben werden.

Über leg dir mal was in 'liste_Abstand' steht, nachdem diese beiden Zeilen abgearbeitet wurden. Wie oft werden diese Zeilen ausgeführt?

Code: Alles auswählen

liste_Abstand = []
liste_Abstand.append(Entfernung)
Antworten