Warum Bereichsfunktionen die Obergrenze ausschließen
In Python generiert die Funktion „range(start, end)“ eine Folge von Zahlen beginnend mit dem Anfang und endet vor dem Ende. Dieses Verhalten kann für einige Benutzer verwirrend sein, die erwarten, dass der Bereich das Ende enthält.
Der Grund für diesen Ausschluss liegt in der häufigen Verwendung von Bereich(0, 10). Bei Verwendung mit einem Startwert von 0 gibt der Bereich [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] zurück, was die gewünschte Sequenz mit 10 Elementen ist. Dies entspricht der Länge der generierten Sequenz und stellt sicher, dass die Anzahl der Iterationen in Schleifen und anderen Anwendungen korrekt ist.
Darüber hinaus ermöglicht der Ausschluss der Obergrenze eine sauberere Schleifensyntax. Betrachten Sie das Code-Snippet:
for i in range(len(li)): pass
Wenn der Bereich end enthalten würde, würde der obige Code einen Fehler auslösen, wenn ich len(li) erreiche, weil er versuchen würde, auf ein Element außerhalb der Listengrenzen zuzugreifen. Durch das Ausschließen der Obergrenze wird dieser potenzielle Fehler eliminiert.
Programmierer bevorzugen üblicherweise die Verwendung von for-Schleifen mit i im Bereich von 0 bis len(li) - 1 statt 1 bis len(li). Dies ist auf die Verbreitung der 0-basierten Indizierung in der Programmierung zurückzuführen.
Für Benutzer, die lieber die Obergrenze einschließen möchten, kann eine benutzerdefinierte Funktion erstellt werden:
def range1(start, end): return range(start, end + 1)
Mithilfe von range1(1 , 10) erzeugt die gewünschte Folge von [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].
Das obige ist der detaillierte Inhalt vonWarum schließt die Funktion „range()' von Python die Obergrenze aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!