Kann mir jemand helfen bei dem Python Code?

1 Antwort

Erstens hast du innerhalb des ifs [0] und [1] anstatt [i] und [i+1] verwendet, das ist schonmal falsch.

Zweitens brauchst du range(5) und nicht range(6). Sonst ist i+1 ein ungültiger Index.

Drittens bringt das so nur die größte Zahl ans rechte Ende.
Stell dir vor die 6 wäre ganz links. Jetzt geh den Code mal Stück für Stück durch:
Du vergleichst die erste Zahl mit der zweiten und tauscht sie falls die erste größer ist. Die 6 steht nun an zweiter Stelle. Nun vergleichst du die zweite Stelle mit der dritten und tauscht sie. 6 steht nur an der dritten Stelle. etc. Du bringst so einfach nur die größte Zahl nach rechts.

Damit du mit diesem Vorgehen die komplette Liste sortierst brauchst du nochmal eine Schleife aussenrum, um das ganze n mal zu wiederholen:

Feld = [5,4,3,4,5,6]

for _ in range(6):
    for i in range(5):
      if Feld[i]>Feld[i+1]:
        h = Feld[i]
        Feld[i] = Feld[i+1]
        Feld[i+1] = h

print(Feld)
Woher ich das weiß:Hobby – Programmieren ist mein Hobby & Beruf
MrAmazing2  08.05.2024, 01:02

Den Code könnte man noch optimieren, indem man die innere Schleife nicht immer ganz ans Ende laufen lässt, denn die Zahlen ganz rechts sind ja dann bereits sortiert. Aber das erspare ich dir mal, hauptsache der Code läuft oder? :D

0