Python3-python-for-loop
提供:Dev Guides
Python 3-forループステートメント
Pythonのforステートメントには、リストや文字列など、任意のシーケンスのアイテムを反復処理する機能があります。
構文
for iterating_var in sequence:
statements(s)
シーケンスに式リストが含まれる場合、最初に評価されます。 次に、シーケンスの最初の項目が反復変数_iterating_var_に割り当てられます。 次に、ステートメントブロックが実行されます。 リスト内の各項目は_iterating_var_に割り当てられ、シーケンス全体が使い果たされるまでステートメントブロックが実行されます。
流れ図
range()関数
組み込み関数range()は、数値のシーケンスを反復処理する適切な関数です。 算術級数の反復子を生成します。
例
>>> range(5)
range(0, 5)
>>> list(range(5))
[0, 1, 2, 3, 4]
例
range()は、0からn-1までの整数を進めるイテレータを生成します。 シーケンスのリストオブジェクトを取得するには、list()に型キャストされます。 これで、forステートメントを使用してこのリストを繰り返すことができます。
>>> for var in list(range(5)):
print (var)
出力
これにより、次のような出力が得られます。
0
1
2
3
4
例
#!/usr/bin/python3
for letter in 'Python': # traversal of a string sequence
print ('Current Letter :', letter)
print()
fruits = ['banana', 'apple', 'mango']
for fruit in fruits: # traversal of List sequence
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/python3
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 ブロックはforループが正常に終了した場合にのみ実行されます(breakステートメントに出会うことなく)。
- while ループで else ステートメントを使用する場合、条件がfalseになると else ステートメントが実行されます。
例
次の例は、elseステートメントと、指定されたリストの偶数を検索する for ステートメントの組み合わせを示しています。
#!/usr/bin/python3
numbers = [11,33,55,39,55,75,37,21,23,41,13]
for num in numbers:
if num%2 == 0:
print ('the list contains an even number')
break
else:
print ('the list doesnot contain even number')
出力
上記のコードが実行されると、次の結果が生成されます-
the list does not contain even number