20
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Python for文まとめ

Posted at

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)で、i0から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)で、iAから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)で、iBを過ぎるまでACずつ増えてきます。

なので、

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-11-2で紹介した用法は、1-3BCの引数を省略した形なのです。
厳密に言えば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)とすると、i0からLの長さ-1まで変化、nLの要素を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に関する記事を出す予定なのでその際にはお読み頂けますと光栄です。

20
20
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?