Schleifenbeginn bei 0 oder 1?
- Bill987654321
- User
- Beiträge: 136
- Registriert: Sonntag 8. März 2020, 10:56
Was ist besser? Sollte man Schleifen bei 0 oder 1 mit dem Zählen beginnen lassen?
Das kommt darauf an, was du dann damit machen willst. Willst du an das erste Element einer Liste? Dann wohl besser von 0. Willst du eine Liste von Bundesliga-Plaetzen darstellen? Die fangen halt bei 1 an. Willst du gar beides? Dann benutzt du einfach enumerate(liste, start=1) und gut ist.
- pillmuncher
- User
- Beiträge: 1530
- Registriert: Samstag 21. März 2009, 22:59
- Wohnort: Pfaffenwinkel
Oder du suchst den Kompromiss: 0.5
In specifications, Murphy's Law supersedes Ohm's.
Code: Alles auswählen
def enumerate(iterable, start=0.5):
for item in iterable:
yield start, item
start += 1

- __blackjack__
- User
- Beiträge: 14052
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@Bill987654321: Gar nicht. Wo stellt sich diese Frage denn?
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
- Bill987654321
- User
- Beiträge: 136
- Registriert: Sonntag 8. März 2020, 10:56
Diese Frage habe ich mir schon öfter gestellt.
Auf was bezieht sich "Gar nicht"?
Auf was bezieht sich "Gar nicht"?
5 Antworten und niemand hat Why numbering should start at 0 verlinkt? Ich bin enttäuscht.
- __blackjack__
- User
- Beiträge: 14052
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
Bill987654321: Gar nicht bezieht sich auf Schleifen über Zahlen. Die sollte man gar nicht beginnen lassen. Weder bei 0 noch bei 1. Es gibt relativ wenige Fälle wo man eine Schleife über Zahlen braucht. Da ist die erste Frage braucht man sie *wirklich*. In den Fällen wo man sie wirklich braucht stellt sich dann aber die Frage nach 0 oder 1 nicht, denn man braucht die ja entweder gar nicht die Zahlen, sondern nur die Wiederholungen, dann ist es egal ob mit 1 oder 0, oder man braucht die Zahl für einen Zweck, und der legt dann ja fest ob 1 oder 0. Also wo stellt sich diese Frage *wirklich* ganz konkret? Also so das die Verwendung das nicht schon sinnvoll klärt‽
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
- Bill987654321
- User
- Beiträge: 136
- Registriert: Sonntag 8. März 2020, 10:56
Die Frage stellt sich hier:
Code: Alles auswählen
for i in range (1, anzahl_mannschaften+1):
- DeaD_EyE
- User
- Beiträge: 1240
- Registriert: Sonntag 19. September 2010, 13:45
- Wohnort: Hagen
- Kontaktdaten:
Das ist ein Anti-Pattern. Bei solchen Code-Beispielen sieht man direkt, dass derjenige Konzepte aus anderen Sprachen auf Python anwendet.Bill987654321 hat geschrieben: Mittwoch 1. April 2020, 08:12 Die Frage stellt sich hier:
Code: Alles auswählen
for i in range (1, anzahl_mannschaften+1):
Ob ein Index bei 0 oder bei 1 anfängt, ist eine Frage der Definition.
In Matlab fängt es bei 1 an. In den wichtigen Sprachen bei 0.
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
- DeaD_EyE
- User
- Beiträge: 1240
- Registriert: Sonntag 19. September 2010, 13:45
- Wohnort: Hagen
- Kontaktdaten:
Ok, solange er nicht auf eine Liste zugreift, um die Namen auszugeben, ist das natürlich in Ordnung.
Den Namen `i` könnte man in `index` oder `idx` oder was anderes umbenennen.
Kleinigkeiten, die einem helfen den eigenen Code nach einem Jahr noch zu verstehen.
Den Namen `i` könnte man in `index` oder `idx` oder was anderes umbenennen.
Kleinigkeiten, die einem helfen den eigenen Code nach einem Jahr noch zu verstehen.
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server