まずはこちらをクリック!

Python の基本文法(for文)

サバくん
サバくん

listなどのシーケンス型の要素を順番に処理したい時がある。そんな時にはfor文の出番です!!

シーケンス型

str型、list型、tuple型のような順番を持った複数データを扱う型のこと

forの記述方法

for文の記述方法は

for 変数 in データ群(listやtuple,strなどのシーケンス型):
␣␣␣␣処理したいコード

となっています。

インデント

␣␣␣␣の部分は半角空白4つの意味、インデントと呼び、空白が3つでも5つでも構文エラーが出ます。


実際に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])を順番に変数に入れてインデント以下の処理を実行します。

変数 i

for文を使うときは慣習的に変数がiとなっていますが、他の文字でもプログラミングは動きます。

for s in range(6):
    print(s+2)

# 0,2,4,6,8,10

例題

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文を組み合わせることも可能です。

脱Python初心者ロードマップ

コメントを残す

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

CAPTCHA