Python3-python-loops

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

Python 3-ループ

一般に、ステートメントは順番に実行されます-関数内の最初のステートメントが最初に実行され、次に2番目のステートメントが実行されます。 コードのブロックを数回実行する必要がある場合があります。

プログラミング言語は、より複雑な実行パスを可能にするさまざまな制御構造を提供します。

ループステートメントを使用すると、ステートメントまたはステートメントのグループを複数回実行できます。 次の図は、ループ文を示しています-

ループアーキテクチャ

Pythonプログラミング言語は、ループ要件を処理するために次のタイプのループを提供します。

Sr.No. Loop Type & Description
1

while loop

特定の条件がTRUEの間、ステートメントまたはステートメントのグループを繰り返します。 ループ本体を実行する前に条件をテストします。

2

for loop

一連のステートメントを複数回実行し、ループ変数を管理するコードを短縮します。

3

nested loops

whileまたはforループの中で、1つ以上のループを別のループ内で使用できます。

ループ制御ステートメント

ループ制御ステートメントは、通常のシーケンスから実行を変更します。 実行がスコープを離れると、そのスコープで作成されたすべての自動オブジェクトは破棄されます。

Pythonは、次の制御ステートメントをサポートしています。

Sr.No. Control Statement & Description
1

break statement

ループステートメントを終了し、ループの直後のステートメントに実行を転送します。

2

continue statement

ループがその本体の残りをスキップし、反復する前にその状態をすぐに再テストします。

3

pass statement

Pythonのpassステートメントは、ステートメントが構文的に必要であるが、コマンドやコードを実行したくない場合に使用されます。

ループ制御ステートメントを簡単に見てみましょう。

イテレータとジェネレータ

*Iterator* は、特定の実装に関係なく、プログラマーがコレクションのすべての要素を走査できるようにするオブジェクトです。 Pythonでは、イテレータオブジェクトは2つのメソッド、* iter()*および* next()*を実装します。

String、List、またはTupleオブジェクトを使用して、イテレーターを作成できます。

list = [1,2,3,4]
it = iter(list) # this builds an iterator object
print (next(it)) #prints next available element in iterator
Iterator object can be traversed using regular for statement
!usr/bin/python3
for x in it:
   print (x, end=" ")
or using next() function
while True:
   try:
      print (next(it))
   except StopIteration:
      sys.exit() #you have to import sys module for this
*generator* は、yieldメソッドを使用して値のシーケンスを生成または生成する関数です。

ジェネレーター関数が呼び出されると、関数の実行を開始することなくジェネレーターオブジェクトを返します。 next()メソッドが最初に呼び出されると、関数はyieldステートメントに到達するまで実行を開始し、yield値が返されます。 利回りは追跡を続けます。 最後の実行を記憶し、2番目のnext()呼び出しは前の値から継続します。

次の例では、すべてのフィボナッチ数の反復子を生成するジェネレーターを定義しています。

#!usr/bin/python3

import sys
def fibonacci(n): #generator function
   a, b, counter = 0, 1, 0
   while True:
      if (counter > n):
         return
      yield a
      a, b = b, a + b
      counter += 1
f = fibonacci(5) #f is iterator object

while True:
   try:
      print (next(f), end=" ")
   except StopIteration:
      sys.exit()