Heim >Backend-Entwicklung >Python-Tutorial >Warum schließt die Funktion „range()' von Python den Endwert aus?

Warum schließt die Funktion „range()' von Python den Endwert aus?

Barbara Streisand
Barbara StreisandOriginal
2024-11-28 17:24:11318Durchsuche

Why Does Python's `range()` Function Exclude the Final Value?

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)

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn