Python For-Schleife Fehlermeldung?
Hallo!
Ich mache gerade diese Aufgabe bei einem Python-Kurs:
Gegeben sind zwei Vektoren v1 und v2 mit der gleichen Anzahl an Elementen. Gib True aus, falls diese parallel zueinander verlaufen, sonst False.
Mittlerweile habe ich diese Lösung gefunden:
if v1[0] == 0:
if v2[0] == 0:
faktor = 0
else:
print(False)
else:
if v2[0] == 0:
print(False)
else:
faktor = v1[0] / v2[0]
for a in range(1, len(v1)):
if v1[a]/v2[a] == faktor:
continue
else:
print(False)
break
print(True)
Meine Frage: Zuerst wollte ich das wie gewohnt mit return True bzw. return False schreiben. Da wurde mir aber immer angezeigt, dass das return out of function ist. Deshalb habe ich das jetzt einfach mal mit dem print Befehl ersetzt und jetzt funktionert es. Aber wieso geht das mit dem return Befehl nicht? Und wie müsste ich das mit return machen?
Tschuldigung, falls die Frage dumm ist, und danke schon mal :)
2 Antworten
Ein "return" funktioniert nur, wenn du eine Funktion hast, aus der du returnen kannst. Pack deinen Code in eine Funktion, und dann sollte es passen:
def are_parallel(v1, v2):
if v1[0] == 0:
......
return True
Und dann im Progammablauf kannst du die Funktion aufrufen:
print(are_parallel(v1,v2))
Wo keine Funktion, da kein return. Wohin soll das Programm denn "returnen"?