Range(start, end): Warum der Ausschluss des Endwerts?
Pythons Range(start, end)-Funktion ist eine häufig verwendete Funktion verwendetes Dienstprogramm, das eine Folge von Zahlen generiert. Eine Besonderheit von range() besteht jedoch darin, dass der Endwert ausgeschlossen wird. Beispielsweise gibt „range(1, 11)“ [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] zurück und stoppt bei 11.
Warum ist das so? Die Antwort liegt in der breiten Verwendung von range() und den gängigen Praktiken in der Programmierung.
1. Einheitlichkeit bei der Indizierung:
Programmierer bevorzugen oft eine nullbasierte Indizierung, bei der das erste Element einer Sequenz als Index 0 referenziert wird. Die Verwendung von range(0, 10) würde [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], enthält genau 10 Elemente und richtet sich nach seiner Länge (len(range(0, 10))).
2. Schleifen und Iterieren:
Betrachten Sie eine allgemeine Schleifenstruktur:
for i in range(len(li)): pass
Wenn range() den Endwert enthalten würde, würde diese Schleife einen Schritt über die gültigen Indizes der Liste li hinaus iterieren . Programmierer vergessen möglicherweise, bei der Angabe des Bereichs 1 von len(li) zu subtrahieren, was zu einer ungültigen Schleife führt.
3. Konsistenz mit Iteratoren:
In Python dient die Funktion „range()“ als Iterator und erzeugt einen Wert nach dem anderen. Wenn der Endwert enthalten wäre, wäre eine zusätzliche Prüfung oder Logik erforderlich, um die Iteration zu beenden, was die Komplexität und das Fehlerpotenzial erhöht.
Dem Bedürfnis nach Inklusion Rechnung tragen:
Wenn Sie häufig feststellen, dass der Endwert einbezogen werden muss, können Sie eine benutzerdefinierte Funktion erstellen, die die Funktionalität von range() erweitert:
def range1(start, end): return range(start, end + 1) print(range1(1, 10)) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Indem Sie die Gründe dafür verstehen Durch den Ausschluss des Endwerts durch range() und durch die Verwendung benutzerdefinierter Funktionen bei Bedarf können Programmierer dieses vielseitige Tool effektiv in ihrem Python-Code nutzen.
Das obige ist der detaillierte Inhalt vonWarum schließt Pythons „range(start, end)' den „end'-Wert aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!