目次
01. for文のサンプル
02. break
03. continue
04. else
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 (文字列から1文字ずつ取得)
# coding: utf-8
str = "red"
for c2 in str:
print(c2) # r e dが出力される
3行目は、文字列です。
5,6行目は、1文字ずつ表示します。
for in (リストの値を取得)
for 変数 in リスト |
# coding: utf-8
list1 = ["red","yellow","blue"]
for c1 in list1:
print(c1) # red yellow blueが出力される
3行目は、リストです。
5,6行目は、for文でリストの全ての値を表示します。
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を使用する
for 変数 in range(数値): 処理 else: 処理 |
ループの判定がfalseになった後に実行します。
# 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配下は実行されません。
関連の記事