Python-for-loop
提供:Dev Guides
Python for Loopステートメント
リストや文字列など、任意のシーケンスのアイテムを反復処理する機能があります。
構文
for iterating_var in sequence:
statements(s)
シーケンスに式リストが含まれる場合、最初に評価されます。 次に、シーケンスの最初の項目が反復変数_iterating_var_に割り当てられます。 次に、ステートメントブロックが実行されます。 リスト内の各項目は_iterating_var_に割り当てられ、シーケンス全体が使い果たされるまでステートメントブロックが実行されます。
流れ図
例
#!/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