Python3-python-for-loop

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

Python 3-forループステートメント

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

構文

for iterating_var in sequence:
   statements(s)

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

流れ図

Python for loop

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