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配下は実行されません。
関連の記事