見出し画像

Python range関数の便利な使い方紹介

 range関数の基本的な使い方

1.1 範囲指定の方法

range関数は、指定した範囲の整数のシーケンス生成に使用されます。
range関数は、start, stop, stepの3つの引数を受け取ります。
各引数の説明を下記に記載します。
start: シーケンスの開始値(デフォルトは0)
stop: シーケンスの終了値(stopの直前の値まで生成される)
step: 値の増分(デフォルトは1)

# range関数の基本的な使い方
start = 1
stop = 10
step = 2

# startからstopまでの範囲の整数シーケンスを生成する
sequence = range(start, stop, step)

# シーケンスの要素を表示する
for num in sequence:
    print(num)

上記の例では、start 変数に1、stop 変数に10、step 変数に2を代入しています。これにより、range関数は1から10までの範囲の整数シーケンスを生成します。

forループを使用して、生成されたシーケンスの各要素を順番に取得し、print 関数を使用して要素を表示しています。

実行結果は以下のようになります:

1
3
5
7
9

このように、range関数を使うことで、指定した範囲の整数のシーケンスを生成し、それを利用して様々な処理を行うことができます。

1.2 range関数の戻り値

range関数は、指定範囲の整数を生成でき、イテラブルオブジェクトを返します。このオブジェクトは、forループなどで使用することができます。

# range関数の戻り値を利用する
start = 1
stop = 10
step = 2

# range関数を使用してシーケンスを生成する
sequence = range(start, stop, step)

# range関数の戻り値をリストに変換する
sequence_list = list(sequence)

# リストの要素を表示する
print(sequence_list)

上記の例では、start 変数に1、stop 変数に10、step 変数に2を代入しています。range関数はこの範囲に基づいて整数のシーケンスを生成し、その結果を変数 sequence に格納します。

その後、list 関数を使用して sequence をリストに変換し、結果を変数 sequence_list に格納します。

最後に、sequence_list を表示してリストの要素を確認します。

実行結果は以下のようになります:

[1, 3, 5, 7, 9]

このように、range関数の戻り値はイテラブルなオブジェクトであるため、必要に応じてリストや他のデータ構造に変換して利用することができます。

range関数の応用的な使い方

2.1 forループとの組み合わせ

range関数は、forループと組み合わせることで、指定された範囲の値を繰り返し処理する際に便利です。
例えば、指定された回数だけ繰り返し処理を実行する場合に使用します。
基本的に、range関数はfor文とセットでよく使われます。今回は、応用として、簡単なカウントダウンプログラムを作ってみます。

# 範囲指定の方法 - 逆順のカウントダウン
start = 10
stop = 0
step = -1

# 逆順のカウントダウンを実行して表示する
sequence = range(start, stop, step)
for num in sequence:
    print(num)

上記の例では、start 変数に10、stop 変数に0、step 変数に-1を代入しています。range関数を使用して、10から0までの範囲の整数シーケンスを生成しますが、step の値が-1なので逆順にカウントダウンされます。

forループを使用して、生成されたシーケンスの各要素を順番に取得し、print 関数を使用して要素を表示しています。

実行結果は以下のようになります:

Copy code10
9
8
7
6
5
4
3
2
1
0

このコードは、範囲指定に逆順と負のステップを指定することで、カウントダウンを実現しています。カウントダウンが必要な場面で活用することができます。

2.2 シーケンスの生成と操作

・range関数を使用して、指定された範囲の整数のシーケンスを生成し、リストなどのデータ構造に変換することもできます。

# 範囲指定とリストへの変換
start = 1
stop = 6
step = 2

# 範囲指定された整数のシーケンスを生成し、リストに変換する
sequence = list(range(start, stop, step))
print(sequence)

上記の例では、start 変数に1、stop 変数に6、step 変数に2を設定しています。range関数を使用して、1から6までの範囲の整数シーケンスを生成しますが、step の値が2なので、2つ飛ばしの要素が生成されます。

list 関数を使用して、生成されたシーケンスをリストに変換し、変数 sequence に格納しています。その後、print 関数を使用してリストの内容を表示しています。

実行結果は以下のようになります:

[1, 3, 5]

この凡例では、range関数を使用して指定された範囲の整数のシーケンスを生成し、それをリストに変換しています。リストに変換することで、後続の処理でシーケンスの要素にアクセスしたり、リストの操作を行ったりすることができます。


・range関数を使用して生成されたシーケンスは、スライスやインデックスを使って要素にアクセスすることも可能です。

# 範囲指定と要素アクセス
start = 1
stop = 6
step = 2

# 範囲指定された整数のシーケンスを生成
sequence = range(start, stop, step)

# スライスを使って要素にアクセス
sliced_sequence = sequence[1:3]
print(sliced_sequence)  # 出力: range(3, 5, 2)

# インデックスを使って要素にアクセス
element = sequence[2]
print(element)  # 出力: 5

上記の例では、start 変数に1、stop 変数に6、step 変数に2を設定しています。range関数を使用して、1から6までの範囲の整数シーケンスを生成しますが、step の値が2なので、2つ飛ばしの要素が生成されます。

sequence 変数には生成されたシーケンスが格納されます。その後、スライスを使ってシーケンスの一部を取り出し、sliced_sequence 変数に格納しています。スライスの結果は、新たなrangeオブジェクトが生成されます。

また、インデックスを使ってシーケンスの特定の要素にアクセスする場合、rangeオブジェクトは直接インデックスアクセスに対応していないため、リストなどのデータ構造に変換する必要があります。上記の例では、インデックス2の要素を取得するために、rangeオブジェクトをリストに変換せずに直接アクセスしています。

実行結果は以下のようになります:

range(3, 5, 2)
5

この凡例では、range関数を使用して生成されたシーケンスから、スライスとインデックスを使って要素にアクセスする方法を示しています。スライスによって部分シーケンスを取得することや、インデックスによって特定の要素にアクセスすることができます。ただし、rangeオブジェクト自体は直接要素アクセスに対応していないため、必要に応じてリストなどのデータ構造に変換する必要があります。

以上のように、range関数は範囲指定の柔軟性と繰り返し処理における便利な機能を提供します。これにより、さまざまなプログラミングのシナリオで活用することができます。

pythonの基礎文法の勉強です。こちらもよかったらどうぞ


この記事が気に入ったらサポートをしてみませんか?