Pythonのfor文の使い方を配列で解説!breakやrangeの使い方もこれでOK
19/01/06 14:14:58 19/05/05 16:42:16
このページではPythonのfor文の使い方を解説します。
配列をベースに解説を進めていきますが、関連するbreak、continue、index、入れ子、if文等についても網羅的に解説していくので、すぐに実践でも使えるかと思います。
目次
Python関連記事
- Pythonでできることとは?人工知能で強みを発揮!
- Pythonのインストール方法をまとめてみた
- Pythonプログラミングに便利なAnacondaとは?機能やPycharmとの違いを解説
- PythonでAnacondaをインストールする方法から実際の使い方までを解説
- Pythonの配列を徹底解説!宣言や追加・削除など
- Pythonのif文の使い方を解説!演算子もおさらい
- Pythonのfor文の使い方を配列で解説!breakやrangeの使い方もこれでOK →この記事
- Pythonのlambda(ラムダ式)の使い方を徹底解説します
- Pythonの高階関数map/filterの便利な使い方
- Pythonでclassをどう使う?技術顧問に聞いてみた!
Pythonのfor文を配列で使う
for文は配列との相性が良いため、配列をベースにfor文の使い方を解説していきます。まずfor文の基本公式は以下のようになります。
for 変数名 in イテラブルオブジェクト:
処理
多くの言語では変数に数値を入れて継続条件を設定し、インクリメントさせることでループしますが、Pythonの場合オブジェクトを設定すれば長さ分自動でループします。具体例として以下のように配列をループさせます。
array = ['きゃー', 'あー', 'おーいえーい']
for scream in array:
print(scream)
配列をfor文で出力していく処理ですが、実行すると以下のように配列の中身が出力されます。
きゃー
あー
おーいえーい
breakでfor文を終わりにする
次に、breakによってfor文を終わりにする方法を紹介します。さっそくサンプルコードを見てみましょう。
array = ['きゃー', 'あー', 'おーいえーい']
for scream in array:
if scream == 'あー':
print('BREAK')
break
print(scream)
このように記述すると、配列の二番目の’あー’が来たらbreakします。
if文の中では配列の出力の前にbreakするようになっているので、BREAKと出力し、配列の中身は出力せずに終了します。結果的には出力は以下のようになります。
きゃー
BREAK
一番目の要素である’きゃー’は出力されていますが、二つ目の’あー’の前にbreakしました。
ちなみに、for文の中のif文は上記のコードのようになるので合わせて把握しておいてください。
in rangeでインデックスを取得する
Pythonのfor文でrange関数を使用すると、配列の中身ではなくインデックス番号が取得されます。
デフォルトではインデックス番号は0から振られるので注意してください。上の説明では配列の要素を1から数えましたが、プログラム的には0からのカウントになります。サンプルコードは以下です。
for i in range(3):
print(i)
このように記述すると出力結果は以下のようになります。
0
1
2
rangeの引数で指定した分のインデックスがカウントされました。次に、初期値を0以外に設定することも可能です。具体的には以下のようになります。
for i in range(1, 6):
print(i)
上記のコードを実験すると、以下のようにコンソール出力されます。
1
2
3
4
5
初期値を1に設定したので、1から出力されました。
勘違いされがちなポイントとしては、終了値が5になることでしょう。なぜ5で終わるのかというと、本来初期値を設定しない場合0~5の6つの数値が出力されるからです。
初期値を設定しても終了値が変わるわけではなく、その分カウント数が少なくなるので注意が必要でしょう。また、if文を使って条件に合致する値のみ出力することもできます。具体的には以下のようになります。
for i in range(1, 10):
if i % 3 == 0:
print(i)
上記のコードを実行すると以下のようにコンソール出力されます。
3
6
9
if文で3で割り切れるもののみを指定しているので、3の倍数のみが出力されました。
任意の値と要素数で初期化
ループで初期化できるのはPythonだけではありませんが、Pythonの場合特殊な記述方法で配列を初期化することができます。具体的には以下のようになります。
l = [0] * 10
print(l)
print(len(l))
このコードを実行すると、以下のように出力されます。
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
10
出力する値を0に設定し、*で10個分としました。
for文を入れ子にする方法
for文は二重、三重に入れ子にすることが可能です。サンプルコードは以下です。
l1 = [1, 2, 3]
l2 = [10, 20, 30]
for i in l1:
for j in l2:
print(i, j)
このコードを実行すると以下のように出力されます。
1 10
1 20
1 30
2 10
2 20
2 30
3 10
3 20
3 30
まず一つ目のループに入ったら、すぐに二つ目のループに入ります。
二つ目のループで設定されている配列には要素が三つ入っているため、その要素の数の分出力されます。三つの要素を出力し終わったら、一つ目のfor文が二周目に入ります。
二周目に入ったら再び二つ目のループが三周し、ループを抜けます。以降この繰り返しで、二重ループは進んでいきます。ループが三重以上ある場合もロジックは同じで、ループに入ったら内側のループが終わるまで回していくイメージです。
continueの使い方
上でbreakの使い方を紹介しましたが、似たような使い方ができるコードにcontinueがあります。
breakの場合for文自体を中断するため次のループに入ることもありませんが、continueの場合そのときのループは中断されるものの、次の周のループには入ります。
注意点としては、continueのイメージからそのままそのループの処理を続けると勘違いしないことです。今現在回っているループは抜けて、あくまでも以降のループは継続するということです。
continueと言っても今現在の周は抜けるので、混乱しないよう注意してください。サンプルコードは以下です。
numList = [3, 4.2, 10, "x", 1, 9]
sum = 0
for num in numList :
if not isinstance(num, (int, float)) :
print(num, "数値ではありません。")
continue
sum += num
print(num, "/", sum)
上記のソースコードを実行すると、以下のようにコンソール出力されます。
3 / 3
4.2 / 7.2
10 / 17.2
x 数値ではありません。
1 / 18.2
9 / 27.2
処理内容は、まず数値と文字列が入った配列を用意し、その配列をループにセットして数値かどうかを判定しています。
数値でない場合はif文に入り、配列の中身と ”数値ではありません。” というメッセージを出力してcontinueでループを抜けます。
配列の要素が数値の場合、if文には入らず数値と合計を出力してループを抜けます。
elseの使い方
最後に、for文と対比する形でelseを使う方法を紹介します。
プログラム的にはelseはif文と対応しているのですが、インデントをfor文と対応されることでわかりやすくするロジックです。サンプルコードは以下のようになります。
numList = [3, 4.2, 10, "x", 1, 9] #文字列が含まれているリスト
sum = 0
for num in numList :
if not isinstance(num, (int, float)) :
print(num, "数値ではない値が含まれていました。")
break #ブレイク
sum += num
else :
print("合計", sum)
上記のコードを実行すると、以下のようにコンソール出力されます。
x 数値ではない値が含まれていました。
else文はif文に入らなかった際に実行されますが、インデント上はfor文と対比させています。システムのイメージとしては、if文に入らずelse文に入ればエラーではない、といった形です。
以上Pythonのfor文の使い方を説明しました。とりあえずは配列をループで回すイメージがつかめていれば問題ないかと思います。
Pythonのフリーランス案件をチェック
→Pythonの案件情報一覧はこちら
Python関連記事
1,【Pythonのフリーランス求人・案件情報】エンジニア開発単価は?未経験でもいける?
2,Pythonでできることとは?人工知能で強みを発揮!
3,Pythonのインストール方法をまとめてみた
4,Pythonプログラミングに便利なAnacondaとは?機能やPycharmとの違いを解説
5,PythonでAnacondaをインストールする方法から実際の使い方までを解説
6,Pythonの配列を徹底解説!宣言や追加・削除など
7,Pythonのif文の使い方を解説!演算子もおさらい
8,Pythonのfor文の使い方を配列で解説!breakやrangeの使い方もこれでOK(この記事)
9,Pythonのlambda(ラムダ式)の使い方を徹底解説します
10,Pythonの高階関数map/filterの便利な使い方
11,Pythonでclassをどう使う?技術顧問に聞いてみた!
人気記事