Python-for-loop

提供:Dev Guides
移動先:案内検索

Python for Loopステートメント

リストや文字列など、任意のシーケンスのアイテムを反復処理する機能があります。

構文

for iterating_var in sequence:
   statements(s)

シーケンスに式リストが含まれる場合、最初に評価されます。 次に、シーケンスの最初の項目が反復変数_iterating_var_に割り当てられます。 次に、ステートメントブロックが実行されます。 リスト内の各項目は_iterating_var_に割り当てられ、シーケンス全体が使い果たされるまでステートメントブロックが実行されます。

流れ図

Pythonのforループ

#!/usr/bin/python

for letter in 'Python':     # First Example
   print 'Current Letter :', letter

fruits = ['banana', 'apple',  'mango']
for fruit in fruits:        # Second Example
   print 'Current fruit :', fruit

print "Good bye!"

上記のコードが実行されると、次の結果が生成されます-

Current Letter : P
Current Letter : y
Current Letter : t
Current Letter : h
Current Letter : o
Current Letter : n
Current fruit : banana
Current fruit : apple
Current fruit : mango
Good bye!

シーケンスインデックスによる反復

各アイテムを反復処理する別の方法は、シーケンス自体へのインデックスオフセットです。 以下は簡単な例です-

#!/usr/bin/python

fruits = ['banana', 'apple',  'mango']
for index in range(len(fruits)):
   print 'Current fruit :', fruits[index]

print "Good bye!"

上記のコードが実行されると、次の結果が生成されます-

Current fruit : banana
Current fruit : apple
Current fruit : mango
Good bye!

ここでは、タプル内の要素の総数とrange()組み込み関数を提供するlen()組み込み関数の助けを借りて、実際の反復シーケンスを提供します。

elseステートメントをループで使用する

Pythonはループステートメントに関連付けられたelseステートメントを持つことをサポートします

  • for ループで else ステートメントが使用される場合、ループがリストの繰り返しを使い果たしたときに else ステートメントが実行されます。
  • while ループで else ステートメントを使用する場合、条件がfalseになると else ステートメントが実行されます。

次の例は、elseステートメントと、10〜20の素数を検索するforステートメントの組み合わせを示しています。

#!/usr/bin/python

for num in range(10,20):     #to iterate between 10 to 20
   for i in range(2,num):    #to iterate on the factors of the number
      if num%i == 0:         #to determine the first factor
         j=num/i             #to calculate the second factor
         print '%d equals %d *%d' % (num,i,j)
         break #to move to the next number, the #first FOR
   else:                  # else part of the loop
      print num, 'is a prime number'

上記のコードが実行されると、次の結果が生成されます-

10 equals 2* 5
11 is a prime number
12 equals 2 *6
13 is a prime number
14 equals 2* 7
15 equals 3 *5
16 equals 2* 8
17 is a prime number
18 equals 2 * 9
19 is a prime number