35
32

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Python for文まとめ

35
Last updated at Posted at 2023-01-30

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文がbreakで中断されなかった時に限りelse以下の処理が行われます。(2026/02/19 smismithさんのご指摘に基づき訂正)

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 おわりに

以上がfor文の主な使い方です。
不明点等ございましたらコメント欄にてお願いします。
他にもPythonや競技プログラミングに関する記事を出しておりますので参考にしていただけますと幸いです。

35
32
2

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
35
32

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?