スライスと範囲に対する Python の排他的な上限
Python では、 range() 関数とスライス() 関数の両方のストップ値は次のとおりです。生成されたシーケンスには含まれません。この設計の選択は、いくつかの要因から生じています。
シンプルさと一貫性:
ストップ値を除外することで、Python はスライス操作のシンプルさと一貫性を維持します。たとえば、s[:2] は文字列 s の最初の 2 文字を生成し、s[2:] は残りの文字を返します。この排他性により、開始インデックスと終了インデックスに関係なく、スライス操作で常に期待される結果が生成されます。
C 構文とのパリティ:
range() 関数の排他的な上位-bound は、C プログラミング言語の for ループ イディオムにも準拠しています。 C では、ループ ステートメント for (i = start ; i ループ不変式: range() およびスライス() 操作により、有用なプログラミング構造の作成が容易になります。たとえば、次の不変式は常に成り立ちます: s[:i] s[i:] = s。このプロパティは、特定の文字列操作およびデータ処理タスクを簡素化します。 さらに、スライスまたは範囲の長さは、範囲内にある場合、開始インデックスと終了インデックスの差として計算されます。この規則により、range() またはスライス() 操作を使用する場合のシーケンスのサイズの計算が簡素化されます。
以上がPython が Range() 関数と Slice() 関数でストップ値を除外するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。