【python/制御構造】繰り返しを行うfor文を徹底解説!

python

この記事では繰り返しをするfor文について解説します。

for文とは

for文とは繰り返しを行う構文です。

for文はイテラブルに対して繰り返しを行うことが出来ます。

for文はイテラブルから取り出せる要素がある限り繰り返し続け、取り出せる要素がなくなったらfor文の外側にある文を実行します。

イテラブルから要素を1個ずつ取り出し、指定した処理を行ってくれます。

以下は広告です。

この記事で学べる事

  • for文の作成方法
  • for文にイテラブルを適用
  • for文とアンパッキング
  • 繰り返しの操作をする関数

for文の作成方法

for文はイテラブルの後に:(コロン)を書いて改行し次の行からインデント(スペース)して書きます。

if文と同様にインデントしている限りはfor文として扱われます。

#for文の作成
for 変数 in イテラブル:
    文・・・      ←【for文の内側】
文・・・        ←【for文の外側】

このようにしてfor文を作成します。

次にfor文の例題を書いて見ます。

#for文の例題(リストを使用)
>>>for a in ['apple', 'banana']: ←【リストを変数aに代入】
>>>    print('fruits', a)
#表示結果
'fruits apple'
'fruits banana'

このようにfor文は繰り返しを行う事ができます。

イテラブルの適用

for文を使うと色んなイテラブルから要素を取り出すことが出来ます。

ここでは今まで学んできたイテラブルの文字列・リスト・タプル・集合・辞書をfor文に適用していきます。

以下は広告です。

文字列

文字列にfor文を適用すると文字を1文字ずつ取り出すことが出来ます。

文字列について知りたい方は以下の記事をご覧ください。

【基本的な文法4】文字列を徹底解説!

次に例題として文字列’PYTHON’にfor文を適用してみます。

#文字列にfor文を適用
>>>for a in 'PYTHON':
>>>    print(a)
#表示結果
P ←【1文字ずつ文字が取り出される】
Y
T
H
O
N

このようにfor文に文字列を適用すると文字を1文字ずつ取り出されます。

リスト

リストにfor文を適用すると要素を1個ずつ取り出すことが出来ます。

リストについて知りたい方は以下の記事をご覧ください。

【データ構造1】リストの使い方を徹底解説!

次に例題としてリストにfor文を適用してみます。

#リストにfor文を適用
>>>fruits = ['apple', 'banana', 'orange']
>>>for a in fruits:
>>>    print(a)
#表示結果
apple ←【要素が1個ずつ取り出される】
banana
orange

このようにリストにfor文を適用すると要素を1個ずつ取り出すことが出来ます。

タプル

次はタプルにfor文を適用してみます。

タプルにfor文を適用するとリストと同様に要素を1個ずつ取り出すことが出来ます。

タプルについて知りたい方は以下の記事をご覧ください。

【データ構造2】タプルの使い方を徹底解説!

次に例題としてタプルにfor文を適用してみます。

#タプルにfor文を適用
>>>fruits = ('apple', 'banana', 'orange')
>>>for a in fruits:
>>>    print(a)
#表示結果
apple ←【リストと同様に要素が1個ずつ取り出される】
banana
orange

このようにタプルにfor文を適用するとリストと同様に要素を1個ずつ取り出すことが出来ます。

以下は広告です。

集合

次は集合にfor文を適用してみます。

集合にfor文を適用するとこれもリストと同様に要素を1個ずつ取り出すことが出来ます。

ですが集合の要素を取り出すときの順序は必ずしも一致するとは限りません。

集合について知りたい方は以下の記事をご覧ください。

【データ構造3】集合を徹底解説!

次に例題として集合にfor文を適用してみます。

#集合にfor文を適用
>>>fruits = {'apple', 'banana', 'orange'}
>>>for a in fruits:
>>>    print(a)
#表示結果
orange ←【要素が順序通りだとは限らない】
apple
banana

このように集合もリストと同様に要素を1個ずつ取り出すことが出来ます。

辞書

最後に辞書にfor文を適用してみます。

辞書にfor文を適用すると格納されたキーを1個ずつ取り出すことが出来ます。

辞書について知りたい方は以下の記事をご覧ください。

【データ構造4】辞書の使い方を徹底解説!

次に例題として辞書にfor文を適用してみます。

#辞書にfor文を適用
>>>fruits = {'apple': 100, 'banana': 150, 'orange': 200}
>>>for a in fruits:
>>>    print(a)
#表示結果
apple ←【格納されたキーが1個ずつ取り出される】
banana
orange

このように、辞書にfor文を適用すると格納されたキーを1個ずつ取り出すことが出来ます。

また取り出したキーを辞書[キー]のようにすれば対応する値を辞書から取り出すことが出来ます。

#辞書にfor文を適用(辞書[キー])
>>>fruits = {'apple': 100, 'banana': 150, 'orange': 200}
>>>for a in fruits:
>>>    print(a, fruits[a])
#表示結果
apple 100 ←【キーと値が取り出される】
banana 150
orange 200

このように辞書からキーと値を取り出すことが出来ます。

itemsメソッド

またitemsメソッドを使うことでキーと値をタプルとして取り出すことが出来ます。

itemsメソッドについて知りたい方は以下の記事をご覧ください。

【データ構造4】辞書の使い方を徹底解説!

#辞書にfor文とitemsメソッドを適用
>>>fruits = {'apple': 100, 'banana': 150, 'orange': 200}
>>>for a in fruits.items(): ←【itemsメソッドを適用】
>>>    print(a)
#表示結果
('apple', 100) ←【キーと値をタプルとして取り出す】
('banana', 150)
('orange', 200)

このようにitemsメソッドを使えばキーと値をタプルとして取り出すことが出来ます。

以下は広告です。

for文とアンパッキング

ここでは辞書のキーと値をアンパッキングして別々の変数に代入してみます。

アンパッキングについて知りたい方は以下の記事をご覧ください。

【データ構造2】タプルの使い方を徹底解説!

#辞書にfor文とアンパッキングを適用
>>>fruits = {'apple': 100, 'banana': 150, 'orange': 200}
>>>for name, price in fruits.items(): ←【別々の変数に代入】
>>>    print(name, price)
#表示結果
apple 100 
banana 150
orange 200

このようにアンパッキングを使えば辞書から何を取り出しているか変数を見ればわかるようになります。

またアンパッキングは辞書以外のデータ構造にも使うことが出来ます。

試しにリストに格納されたタプルに適用してみます。

#リストに格納されたタプルにfor文とアンパッキングを適用
>>>fruits = [('apple', 100), ('banana', 150), ('orange', 200)]
>>>for name, price in fruits: ←【別々の変数に代入】
>>>    print(name, price)
#表示結果
apple 100
banana 150
orange 200

このようにアンパッキングは辞書以外のデータ構造にも適用することができます。

繰り返しの回数を決める関数

ここでは繰り返しの回数を操作をする関数を解説します。

繰り返す回数を決めるrange関数

for文の繰り返しの回数を決めるにはrange(レンジ)関数を使います。

#range関数の使い方
・0から「終了値-1」まで1ずつ増加する方法
range(終了値)

・開始値から「終了値-1」まで1ずつ増加する方法
range(開始値, 終了値)

・開始値からステップずつ変化する方法
range(開始値, 終了値, ステップ)

このようにしてrange関数は使うことが出来ます。

終了値は範囲に含まれないことに注意してください。

ステップを指定した場合は終了値に等しくなる直前か、終了値を超える直前までが範囲になります。

次は例題を一つずつ書いてみます。

またend=’ ’は、文字列を横一列に表示させてくれます。

まずは0から「終了値-1」まで1ずつ増加する方法の例題を書きます。

#0から「終了値-1」まで1ずつ増加する方法
>>>for a in range(10): ←【range関数を使用】
>>>    print(a, end=' ')
#表示結果
0 1 2 3 4 5 6 7 8 9 ←【0から終了値まで表示される】

このように終了値の1つ前まで表示してくれます。

次に開始値から「終了値-1」まで1ずつ増加する方法の例題を書きます。

#開始値から「終了値-1」まで1ずつ増加する方法
for a in range(5, 11): ←【range関数の使用】
    print(a, end=' ')
#表示結果
5 6 7 8 9 10  ←【開始値から終了値で表示される】

このように開始値と終了値を書けばその範囲を繰り返してくれます。

最後に開始値からステップずつ変化する方法の例題を書きます。

#開始値からステップずつ変化する方法
>>>for a in range(10, 31, 3): ←【range関数を使用】
>>>    print(a, end=' ')
#表示結果
10 13 16 19 22 25 28  ←【3ずつ表示される】

ステップを使うと飛ばし、飛ばし表示することが出来ます。

繰り返す回数がわかるenumerate関数

enumerate(イニュームレイト)関数を使うと要素を取り出し、取り出した要素の番号を教えてくれます。

#enumerate関数の作成
・for文とenumerate関数の組み合わせをする方法
for 変数A, 変数B in enumerate(イテラブル):
  文・・・
・カウントの開始値を指定する方法
for 変数A, 変数B in enumerate(イテラブル, 開始値):
  文・・・

このようにしてenumerate関数は使うことが出来ます。

次に例題としてapple・banana・orangeにenumerate関数を適用してみます。

#enumerate関数の例題(アンパッキングを使用)
>>>fruits = ['apple', 'banana', 'orange']
>>>for count, name in enumerate(fruits, 1):
>>>    print(count, name)
#表示結果
1 apple ←【番号が表示される】
2 banana
3 orange

このように取り出した要素の番号を表示してくれます。

逆に繰り返すreversed関数

最後にreversed(リバースト)関数について解説します。

reversed関数は要素を逆順に取り出すことが出来ます。

#reversed関数の作成
for 変数 in reversed(イテラブル):
    文・・・

このようにしてreversed関数は使うことが出来ます。

次に例題としてapple・banana・orangeを逆順で表示させてみます。

#reversed関数の例題
>>>fruits = ['apple', 'banana', 'orange']
>>>for a in reversed(fruits):
>>>    print(a)
#表示結果
orange ←【逆順で表示される】
banana
apple

 このようにreversed関数は要素を逆順で表示することが出来ます。

まとめ

今回はfor文について解説しました。

for文は繰り返しにおいてよく使う構文ですのでしっかり覚えて置きましょう。

最後までお読みいただきありがとうございました。

タイトルとURLをコピーしました