サバくん
listなどのシーケンス型の要素を順番に処理したい時がある。そんな時にはfor文の出番です!!
目次
for文の記述方法は
for 変数 in データ群(listやtuple,strなどのシーケンス型):
␣␣␣␣処理したいコード
となっています。
実際にfor文を見てみよう
for i in [0,1,2,3,4,5]:
print(i*2)
# 0,2,4,6,8,10
このようにコードを記述すると、シーケンス型(この場合[0,1,2,3,4,5])を順番に変数に入れてインデント以下の処理を実行します。
for i in range(30+1):
print(f"\sqrt {i} = {i**(1/2)}")
for i in range(20):
if i%2!=0:
continue
print(i)
サバくん
listを作成したい時にfor文を使うと楽な場合があります。知らなくてもコードを記述することは可能ですが、覚えておくととても便利です。
例えば、1から5までの整数の2乗の値が格納されているリストが欲しいとします。この場合は以下のように記述することができます。
l=[]
for i in range(1,5+1):
l.append(i**2) # appendはlistに要素を加えるといった意味だ
l
# [1, 4, 9, 16, 25]
となりますが、実はこのコードと同様の結果を出すコードを1行で書くことができます。
[i**2 for i in range(1, 5+1)]
# [1, 4, 9, 16, 25]
このような記述の仕方をリスト内表記と言います。このリスト内表記にif文を組み合わせることもできます。
例えば、先ほどのコードで「変数が偶数(2と4)の場合は処理しない」とするときは
[i**2 for i in range(1, 5+1) if i%2!=0]
# [1, 9, 25]
と記述することができます。このようにif文を組み合わせることも可能です。