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

目次

for in range (指定した数分繰り返す)

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

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

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

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

point

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

for in (文字列から1文字ずつ取得)

str = "red"

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

for文で1文字ずつ表示します。

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

for 変数 in リスト
list1 = ["red","yellow","blue"]

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

for文でリストの全ての値を表示します。

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

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

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

break (ループを抜ける)

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

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

2重ループでbreakを使用

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

for文が2重ループ(入れ子)になっています。
breakは、内側のfor文のみ抜けます。

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

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

continueがあるのでi=1のときループ処理の先頭に戻ります。
4行目は、2回実行されます。i=0とi=2が出力されます。

2重ループでcontinueを使用

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

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

for文でelseを使用する

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

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

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

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

関連の記事

Python if文 条件で処理を分ける
Python while文とdo…while文にあたる書き方

△上に戻る