0 はじめに
この記事について
殆どのプログラミング言語にはfor文なるものが存在します。
for文には、その言語の熟練度と言っても過言ではない程、色々な使い方が存在するものです。
この記事ではPythonでのfor文の用法をまとめてみました。
私の知る限りの用法をまとめましたので、参考にして頂けますと幸いです。
Pythonを少しでもわかる方が対象です。
for文とは
for文は次のような事ができます。
①ある操作を指定した回数繰り返す
②イテレータの要素を1つずつ見ていく
イテレータとは簡単に言えば「何かが集まったもの」です。
文字列や配列などがイテレータに該当します。
又、①も実は②に含まれると言うことができます。
発展的な話題なのでそれについては後述します。
1 基本
1-0 カウント変数
for文にはカウント変数というものが存在します。
カウント変数はfor文を回すごとに指定した通りに変化していきます。
for (カウント変数) in (なんか)
という形が基本です。
1-1 for i in range(N)
これが最も有名でしょう。
for i in range(N)
で、i
は0
からN-1
まで1
ずつ増えていきます。
(1
からN
までとはならないことに注意して下さい。)
なので、
for i in range(6):
print(i)
これを実行すると、出力は
0
1
2
3
4
5
となります。
1-2 for i in range(A,B)
for i in range(A,B)
で、i
はA
からB-1
まで変化します。
B
は含まれません。
なので、
for i in range(-1,3):
print(i)
を実行すると出力は
-1
0
1
2
となります。
1-3 for i in range(A,B,C)
for i in range(A,B,C)
で、i
はB
を過ぎるまでA
はC
ずつ増えてきます。
なので、
for i in range(2,8,3):
print(i)
これを実行すると
2
5
となりますし、(8を過ぎるまで、2から3ずつ増やしていくと2→5となります)
for i in range(6,2,-1):
print(i)
これを実行すると
6
5
4
3
となります。(2を過ぎるまで6から1ずつ減らしていくと6→5→4→3となります)
...
実は、1-1
と1-2
で紹介した用法は、1-3
でB
とC
の引数を省略した形なのです。
厳密に言えばrange(N)
はrange(0,N,1)
、range(A,B)
はrange(A,B,1)
と同義です。
1-4 for文の中断・スキップ
break
で、処理中のfor文を終了し、continue
でfor文の処理をスキップできます。
又、for文をbreak
したかはelse
で判定できます。
具体的には、
for i in range(5):
print(i)
if i==3:
break
を実行すると、
0
1
2
3
のように、i=3
の時にfor文は終了し、
for i in range(6):
if i%2==0:
continue
print(i)
を実行すると、
1
3
5
のように、i%2==0
、即ちi
が偶数の時にfor文の処理がスキップされます。
そして、
for i in range(5):
print(i)
if i==3:
break
else:
print("for文が終了されました")
とすると、
0
1
2
3
for文が終了されました
のように、for文がbreak
で終了された時に限りelse
以下の処理が行われます。
2 イテレータの要素を見ていく用法
2-1 for i in (イテレータ)
for i in (イテレータ)
で、i
がイテレータの要素を1つずつ移っていきます。
つまり、
S="abcd"
for i in S:
print(i)
を実行すると
a
b
c
d
となります。
又、
L=[4,2,5,3]
for i in L:
print(i)
を実行すると
4
2
5
3
となります。
2-2 for i,n in enumerate(L)
for i,n in enumerate(L):
print(i,n)
は、
for i in range(N):
print(i,L[i])
と同義です。
即ち、for i,n in enumerate(L)
とすると、i
は0
からLの長さ-1
まで変化、n
はL
の要素を1つずつ移っていきます。
割とよく使うので覚えておくとよいでしょう。
2-3 辞書型の要素を見ていく用法
辞書型については次を参照してください。辞書型についての記事
D
を辞書型の変数とすると、D.keys()
でD
のkey、D.values()
でD
のvalue、D.items()
でD
のkeyとvalueの組の配列を得られます。(実際には型は配列ではないです)
なので、
D={1:"a",2:"c",3:"d",4:"b"}
for n,a in D.items():
print(n,a)
を実行すると
1 a
2 c
3 d
4 b
となります。
(出て来る順番はkeyでソートされているっぽいです)
3 おわりに
以上です。
小一時間で適当に書いた記事なので分かりにくい点があると思いますが、不明点等ございましたらコメント欄にてお願いします。
他にもPythonに関する記事を出す予定なのでその際にはお読み頂けますと光栄です。