Python:18日目 – range関数

range関数

range(stop)

range型を使って戻り値を返します。

プログラムの中で使う際はリストやタプルに変換して表示させることができます。

簡単なテストとして、0~15までの整数をリストで表示させてみましょう。

test_kotaro = list(range(16))
print(test_kotaro)

このようにリストで返ってきました。

range(x) で、 0 <= 整数< x の範囲にて、1刻みの整数を表します。

range(x)では、(x)は含まれないことを注意しましょう。

15まで表示の際は、プログラムでは16となります。

range(start, stop, step)

このように指示することで、範囲を指定することができます。

試しに書いてみましょう。

test_kotaro = list(range(2, 60, 4))
print(test_kotaro)

この指示だと、2からスタートして、60までに、4ずつとなります。

[2, 6, 10, 14, 18, 22, 26, 30, 34, 38, 42, 46, 50, 54, 58]

結果はこのようになります。

stepの指示がない場合

stepの指示がない場合は原則通りの1刻みで表示されます。

test_kotaro = list(range(2, 60))
print(test_kotaro)

ステップを指示しないとこのようになります。

[2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59]

range(x)では(x)が含まれないことに注意です!

指定範囲の数値の合計

all = 0
for num in range(1, 21):
    print(num)
    all += num
print(all)

for文を使って順番に数値を足していきましょう。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
210

結果はこのようになります。

all = 0
for num in range(1, 21):
    all += num
print(all)

経過が不要の場合はこうすれば結果だけ出ますよね。

all = 0
for num in range(1, 1001, 2):
    all += num
print(all)

さらに、ステップで指示を出して。。。

all = 0
for num in range(1, 1001, 2):
    all += num
print(all)

これで奇数だけ順番に足していくコードになりました。

実行結果は

250000

これくらいなら数学好きな方なら暗算でやられてしまいそうですのでこうしておきましょう。。。

all = 0
for num in range(1, 112932, 2):
    all += num
print(all)
3188409156

for文でrange分繰り返す

for文で指定回数繰り返すコードを書いてみましょう。

for _ in range(5):
    print('kotaro_marks')

実行結果はこのようになりました。

kotaro_marks
kotaro_marks
kotaro_marks
kotaro_marks
kotaro_marks

これでrangeの概要は掴めたかと思います。

Kotaro
Kotaro
フォトグラファー, サウンドデザイナー, 投機家。
ドイツで制作したピアノアルバムをリリース後「金田式電流伝送DC録音」専門スタジオにアシスタントとして弟子入りし裏方へ。
現在は独立しKotaro Studioで「誰かのためにただここに在る」をテーマにアルゼンチンタンゴとアメリカの古典音楽の歴史を研究しながらコンテンツを制作中。
小学3年生の頃、読書感想文の賞金である図書券で2冊の投資関連の本を購入したのをきっかけに投資に興味を持つ。
当サイトでは金融の歴史も含め関連するデータやスキルもアーカイブしていきます。
左脳を使うのに疲れたらKotaro Studioの音楽コンテンツも是非ご覧ください。