DESIGNMAP

  1. TOP
  2. 公開講座
  3. ゼロから始めるPython入門
  4. forによる繰り返し処理 ー ゼロから始めるPython入門【Vol.7】

forによる繰り返し処理 ー ゼロから始めるPython入門【Vol.7】

Atomを起動します。[ファイル]メニュー→[新規ファイル]をクリックします。[ファイル]メニュー→[保存]をクリックします。Vo.3につくった「python-study」フォルダ内に、「for1.py」というファイル名で保存します。

fruits = ['バナナ', 'イチゴ', 'もも', 'みかん', 'すいか']

for fruit in fruits:
    print(fruit)

実行すると、以下のようにリストの値が自動で取り出されfruit変数に代入されます。リストの値をすべて取り出すと繰り返し処理は自動で終わります。

バナナ
イチゴ
もも
みかん
すいか

繰り返しを途中でやめる

下記のようにコードを追加します。

fruits = ['バナナ', 'イチゴ', 'もも', 'みかん', 'すいか']

for fruit in fruits:
    if fruit == 'もも':
        break
    print(fruit)

保存して実行すると、バナナ、イチゴまでが出力されます。break文はループを途中で切り上げます。

バナナ
イチゴ

繰り返しの特定の回をスキップする

fruits = ['バナナ', 'イチゴ', 'もも', 'みかん', 'すいか']

for fruit in fruits:
    if fruit == 'もも':
        continue
    print(fruit)

「もも」が出力されません。continueは繰り返しの次のデータにスキップさせるので、ももの時のprint(fruit)が実行されず、次の要素に処理が移ります。

バナナ
イチゴ
みかん
すいか

forはリスト以外にも使えます

forはリストの他に文字列、辞書、タプル、集合などにも使えます。辞書、タプル、集合は本講座ではまだ未学習です。文字列で試してみましょう。

下記のコードを「for2.py」というファイル名で保存します。

words = "こんにちは"

for word in words:
    print(word)

実行すると、文字列から1文字ずつ取り出して、word変数に代入しています。

こ
ん
に
ち
は

range()関数との連携

range()関数は、リストを指定した範囲で作ることができます。
対話実行モードで下記のコードを試すと、11個の要素がはいったリストがつくれます。

>>> r = range(1, 10)
>>> list(r)
[1, 2, 3, 4, 5, 6, 7, 8, 9]

list()関数は、ほかのデータ型をリストに変換します。range()関数はある範囲をもったオブジェクトをつくります。画面に表示するためには、リストに変換したり、下記のようにfor文を使います。

>>> for num in range(0, 11):
...     print(num)
... 
0
1
2
3
4
5
6
7
8
9
10

対話実行モードでforを書くときも、:の後の行はインデントを下げる必要があります。Atomと違い自動でインデントが入らないので、記述を間違いやすいです

イテレーター

forはイテレーターという仕組みをつかっています。イテレーターとは、反復子と訳されます。
イテレーターはある範囲のデータの中に、小人がはいって、中のデータを取り出し、次に進んではまた取り出し、データの最後まで行くと、終わりですよと知らせてくれるイメージです。イテレーター自体を自分で実装することも可能ですが、Pythonでは言語レベルで用意してくれています。

イテレーターを使うと、データがどのような大きさなのか、どういう構造なのかを知らなくても、共通のやり方でデータの中の要素を取り出すことができます。今回、forをリスト、文字列、range()関数に試しましたが、データ構造や大きさは違うのに、どれも同じ書き方で要素を取り出しています。

イテレーターは複数の要素の集まりと見なせる対象の各要素にアクセスできます。文字列、リスト、タプル、辞書、集合はイテラブルオブジェクトといわれイテレーターに対応しているオブジェクトです。

forはイテラブルオブジェクトに対して要素を取り出すことができると覚えておきましょう。

スポンサーリンク

関連記事

プロフィール

DESIGNMAP
制作ディレクター。フリーランス。
ON VISITING」を運営。
お問い合わせ