Warum schließt Pythons Range-Funktion den Endwert aus?
Pythons range()-Funktion erstellt eine Zahlenfolge, die mit dem Startparameter beginnt und endet kurz vor dem Endparameter. Benutzer stoßen häufig auf das unerwartete Verhalten, bei dem „Bereich(Start, Ende)“ eine Liste ohne den Endwert erstellt.
Gründe für den Ausschluss
Im Gegensatz zum ersten Eindruck handelt es sich um dieses Verhalten ist nicht willkürlich. Es dient den folgenden Zwecken:
-
Nullbasierte Indizierung: Programmierkonventionen verwenden üblicherweise eine nullbasierte Indizierung, bei der auf das erste Element bei Index 0 zugegriffen wird. Range() hält sich daran Befolgen Sie diese Konvention, indem Sie den Endwert ausschließen, um sicherzustellen, dass die Länge der generierten Sequenz mit dem angegebenen Ende - Anfang übereinstimmt.
-
Schleife Praktisch: Viele durchlaufen Sequenzen mithilfe von for-Schleifen, die auf die Länge der Sequenz verweisen. Wenn range() den Endwert enthalten würde, müsste die Schleife 1 von der Länge subtrahieren, was die Codierungskomplexität erhöhen würde.
Alternative Lösungen
Für In Fällen, in denen der Endwert enthalten sein muss, bietet Python Optionen:
-
Bereichsanfang ändern: range(start - 1, end) erzeugt eine Sequenz, die den Endwert enthält.
-
Benutzerdefinierte Bereichsfunktion: Man kann eine benutzerdefinierte Funktion definieren, um Bereiche zu erstellen, die den Endwert enthalten. Zum Beispiel:
def inclusive_range(start, end):
return range(start, end + 1)
Nach dem Login kopieren
Das obige ist der detaillierte Inhalt vonWarum schließt die Funktion „range()' von Python den Endwert aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!