範囲関数が上限を除外する理由
Python では、range(start, end) 関数は start から始まる一連の数値を生成します。そして終わりの前に終わり。この動作は、範囲に end が含まれることを期待している一部のユーザーにとって混乱を招く可能性があります。
この除外の理由は、range(0, 10) の一般的な使用法にあります。先頭を 0 として使用すると、range は [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] を返します。これは、10 個の要素を含む目的のシーケンスです。これは、生成されたシーケンスの長さと一致し、ループや他のアプリケーションでの反復回数が正しいことを保証します。
さらに、上限を除外することで、よりクリーンなループ構文が可能になります。コード スニペットを考えてみましょう:
for i in range(len(li)): pass
範囲に end が含まれている場合、上記のコードは len(li) に到達すると、リストの境界外の要素にアクセスしようとするため、エラーがスローされます。上限を除外すると、この潜在的なエラーが排除されます。
プログラマは一般に、i が 1 から len(li) までの範囲ではなく、0 から len(li) - 1 までの範囲の for ループを使用することを好みます。これは、プログラミングにおける 0 から始まるインデックス付けの普及によるものです。
上限を含めたいユーザーの場合は、カスタム関数を作成できます。
def range1(start, end): return range(start, end + 1)
Using range1(1) , 10) は、目的のシーケンス [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].
以上がPython の `range()` 関数が上限を除外するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。