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

for文+回数 for文とは(in range)
for in rangeのサンプル
開始と終了の値を設定
  ステップ(増減値)
for文+文字列 for inのサンプル
リストの値を取得
ディクショナリのキーと値を取得
break ループを抜ける(break)
2重ループでbreakを使用
continue ループの先頭に戻る(continue)
2重ループでcontinueを使用
else for文でelseを使用する

for文とは(in range)

for 変数  in range([開始値,] 終了値 [,ステップの数値]) :
    実行される処理
  • 処理を繰り返す時に使用します。最初にforを書くのでfor文と呼ばれます。繰り返しはループとも呼ばれます。
  • 開始値は省略可能です。その場合の変数は0から始まります。
  • 終了値-1まで処理を繰り返します。(ステップの数値が正の値の場合)
    →rangeの引数が5のみであれば変数は0,1,2,3,4となります。
  • ステップの数値は省略可能です。マイナス値の指定も可能です。
    →2がある場合は、ループで2つずつ増加します。

 

for in rangeのサンプル

# 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が出力される

3行目のrangeの引数は終了の数値です。5は5回ループします。iは0から始まります。
rangeのあとにコロン(:)をつけます。
6行目は、3行目と同じ意味になります。range(0,5)の0は開始の数値で5は終了の数値です。

 

開始と終了の値を設定

for文の開始と終了の値を設定できます。

# coding: utf-8

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

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

3,6行目のrangeの引数は開始と終了の数値を設定しています。

 

ステップ(増減値)

ステップで増減値を指定できます。

# coding: utf-8

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行目のステップは、2なのでループ変数の値が2つずつ増加します。
6行目のステップは、-2なのでループ変数の値が2つずつ減少します。

 

for文で文字列の値を取得する(in)

for 変数1 in 変数2

for文で文字列の値を取得するサンプルです。

# coding: utf-8

a = "赤黄青"

for c1 in a:
    print(c1) # 赤 黄 青が出力される

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

 

リストの値を取得する

for文でリストの値を取得するサンプルです。

# coding: utf-8

a = ["赤","黄","青"]

for c1 in a:
	print(c1) # 赤 黄 青が出力される

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

 

ディクショナリのキーと値を取得する

for文でディクショナリのキーと値を取得するサンプルです。

# coding: utf-8

a = {"c1":"赤",
	"c2":"黄",
	"c3":"青"}

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

for key in a:
	print(a[key]) #赤 黄 青が出力される

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を使用

内側のFor文を抜けます。

# 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を使用

内側のFor文の先頭に戻ります。

# 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を使用する

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

ループ処理終了後に実行します。

# coding: utf-8

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

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

関連の記事

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

△上に戻る