カテゴリー
Python

Python3:公式チュートリアルあらすじ~フロー制御(for と range)

数列を生成して for 文のループをコントロールしてみます


for文 を数列でループさせる

range 関数

range 関数を使うと数列が作れるの

range 関数と for を組み合わせると、他の言語の for文 っぽくループ処理できるんですね

コード:

for i in range(5):
    print(i)

実行結果:

0
1
2
3
4

数列を使ってリストをループ

Python だと、リストをループさせるときは通常こんなかんじに書くんだけど…

コード:

a = ['Mary', 'had', 'a', 'little', 'lamb']

for v in a:
    print(v)

range関数 を使うならこんな感じ

コード:

a = ['Mary', 'had', 'a', 'little', 'lamb']

for i in range(len(a)):
    print(a[i])

実行結果はどちらも同じですね

実行結果:

Mary
had
a
little
lamb

数列をリストにする

range関数 の出力をリストにしたいときは list関数 を使うんです

list(range(5, 10))[5, 6, 7, 8, 9]
list(range(0, 10, 3))[0, 3, 6, 9]
list(range(-10, -100, -30))[-10, -40, -70]

たとえば range(5) の出力を print 関数でそのまま表示すると、 [0, 1, 2, 3, 4] じゃなく range(0, 5) みたいに表示されちゃいます

range関数の出力やリストみたいに、for文なんかに要素をうまいこと渡してループできちゃったりするオブジェクトを「イテラブル(iterable)」って言います


このページに対応する公式チュートリアルはこちら