Python for文 処理を繰り返す(break/continue)

目次

サンプル for in range / リストの値を取得(for in) / 文字列の文字を取得(for in)
  ディクショナリのキーと値を取得(for in)
break ループを抜ける(break) / 2重ループでbreakを使用
continue ループの先頭に戻る(continue) / 2重ループでcontinueを使用
else for文でelseを使用する

for文のサンプル

for in range

for 変数  in range([開始値,] 終了値 [,ステップの数値]) :
    実行される処理

処理を繰り返す時に使用します。最初にforを書くのでfor文と呼ばれます。
繰り返しはループとも呼ばれます。

# coding: utf-8

for i in range(5):
	print(i) # 0 1 2 3 4が出力される

for i in range(0,5):
	print(i) # 0 1 2 3 4が出力される

for i in range(1,10,2):
	print(i) # 1 3 5 7 9が出力される

for i in range(10,1,-2):
	print(i) # 10 8 6 4 2が出力される

3行目のrangeの引数は終了の数値です。値 < 5までループします。iは0から始まります。
rangeのあとにコロン(:)をつけます。
6行目は、3行目と同じ意味になります。range(0,5)の0は開始の数値です。値 < 5までループします。
9行目のステップは2なのでループ変数の値が2つずつ増加します。
12行目のステップは-2なのでループ変数の値が2つずつ減少します。

point

・開始値は省略可能です。その場合の変数は0から始まります。
・終了値-1まで処理を繰り返します。(ステップの数値が正の値の場合)
→rangeの引数が5のみであれば変数は0,1,2,3,4となります。
・ステップの数値は省略可能です。マイナス値の指定も可能です。
→2がある場合は、ループで2つずつ増加します。

 

リストの値を取得(for in)

# coding: utf-8

list1 = ["red","yellow","blue"]

for c1 in list1:
    print(c1) # red yellow blueが出力される

3行目は、リストです。
5,6行目は、for文でリストの全ての値を表示します。

for 変数1 in 変数2

 

文字列の文字を取得(for in)

# coding: utf-8

str = "red"

for c2 in str:
    print(c2) # r e dが出力される

3行目は、文字列です。
5,6行目は、1文字ずつ表示します。

 

ディクショナリのキーと値を取得(for in)

# coding: utf-8

a = {"c1":"red",
	"c2":"yellow",
	"c3":"blue"}

for key in a:
	print(key) #c1 c2 c3が出力される

for key in a:
	print(a[key]) #red yellow blueが出力される

3~5行目は、リストです。
7,8行目は、for文でディクショナリの全てのキーを表示しています。
10,11行目は、for文でディクショナリの全ての値を表示しています。

 

ループを抜ける(break)

# coding: utf-8

for i in range(5):
	if i == 3:
		break
	print(i) #0,1,2が出力される

3行目はrange(5)です。5回ループすることになっています。
5行目にbreakがあるのでi=3のときfor文を抜けます。

 

2重ループでbreakを使用

# coding: utf-8

for i in range(3):
	for j in range(3):
		if j == 0:
			break
		print("j=" + str(j)) #出力されない

	print("i=" + str(i)) #i=0,i=1,i=2が出力される

3,4行目にfor文があり2重ループ(入れ子)になっています。
6行目のbreakは、内側のfor文のみ抜けます。

 

ループの先頭に戻る(continue)

# coding: utf-8

for i in range(3):
	if i == 1:
		continue
	print("i=" + str(i)) #i=0 i=2が出力される

3行目はrange(3)です。3回ループすることになっています。
5行目にcontinueがあるのでi=1のときループ処理の先頭に戻ります。
6行目は、2回実行されます。i=0とi=2が出力されます。

 

2重ループでcontinueを使用

# coding: utf-8

for i in range(3):
	for j in range(3):
		if j == 0:
			continue
		print("j=" + str(j)) # j=1,j=2,j=1,j=2,j=1,j=2が出力される

	print("i=" + str(i)) # i=0,i=1,i=2が出力される

3,4行目にfor文があり2重ループ(入れ子)になっています。
6行目のcontinueは、内側のfor文の先頭の4行目に戻ります。

 

for文でelseを使用する

# coding: utf-8

for i in range(5):
	print(i) # 0,1,2,3,4が出力される
	i += 1
else:
	print("End") # Endが出力される

6行目は、elseです。3行目の条件がfalseになった時に7行目が実行されます。
for文の中にbreakがありそのbreakでfor文を抜けた場合、else配下は実行されません。

point

for 変数 in range(数値):
  処理
else:
  処理

ループの判定がfalseになった後に実行します。

関連の記事

Python if文のサンプル
Python while文とdo…while文にあたる書き方

△上に戻る