ホームページ > バックエンド開発 > Python チュートリアル > Python の `range()` 関数が上限を除外するのはなぜですか?

Python の `range()` 関数が上限を除外するのはなぜですか?

Susan Sarandon
リリース: 2024-12-13 17:15:09
オリジナル
905 人が閲覧しました

Why Does Python's `range()` Function Exclude the Upper Bound?

範囲関数が上限を除外する理由

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート