\

Pythonのrange関数は、通常、開始値から終了値までの連続した整数を生成しますが、終了値は範囲に含まれません。つまり、range(a, b)を使用すると、aからb-1までの整数が生成されます。

しかし、場合によっては、終了値を含む範囲、つまり閉区間を扱いたいことがあります。そのような場合、以下のように自分で関数を定義することができます。

def closed_range(start, stop, step=1):
    dir = 1 if (step > 0) else -1
    return range(start, stop + dir, step)

このclosed_range関数を使用すると、開始値と終了値の両方を含む範囲を生成することができます。以下にいくつかの使用例を示します。

>>> list(closed_range(1, 10))
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>> list(closed_range(1, 10, 2))
[1, 3, 5, 7, 9]

>>> list(closed_range(10, 1, -1))
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

このように、Pythonでは組み込みのrange関数を少し拡張することで、閉区間を簡単に扱うことができます。このclosed_range関数は、ループ処理や数値の列挙など、さまざまな場面で役立つでしょう。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です