Python3-ループ
一般に、ステートメントは順番に実行されます-関数の最初のステートメントが最初に実行され、次に2番目のステートメントが実行されます。コードのブロックを数回実行する必要がある場合があります。
プログラミング言語は、より複雑な実行パスを可能にするさまざまな制御構造を提供します。
ループステートメントを使用すると、ステートメントまたはステートメントのグループを複数回実行できます。次の図は、ループステートメントを示しています-
Pythonプログラミング言語は、ループ要件を処理するために次のタイプのループを提供します。
シニア番号 | ループの種類と説明 |
---|---|
1 | whileループ 指定された条件がTRUEである間、ステートメントまたはステートメントのグループを繰り返します。ループ本体を実行する前に条件をテストします。 |
2 | forループ 一連のステートメントを複数回実行し、ループ変数を管理するコードを省略します。 |
3 | ネストされたループ 1つ以上のループを別のwhileまたはforループ内で使用できます。 |
ループ制御ステートメント
ループ制御ステートメントは、実行を通常のシーケンスから変更します。実行がスコープを離れると、そのスコープで作成されたすべての自動オブジェクトが破棄されます。
Pythonは、次の制御ステートメントをサポートしています。
シニア番号 | 制御ステートメントと説明 |
---|---|
1 | breakステートメント ループステートメントを終了し、ループの直後のステートメントに実行を転送します。 |
2 | ステートメントを続ける ループに本体の残りの部分をスキップさせ、繰り返す前にすぐにその状態を再テストします。 |
3 | passステートメント Pythonのpassステートメントは、ステートメントが構文的に必要であるが、コマンドやコードを実行したくない場合に使用されます。 |
ループ制御ステートメントを簡単に見てみましょう。
イテレータとジェネレータ
Iteratorは、特定の実装に関係なく、プログラマーがコレクションのすべての要素をトラバースできるようにするオブジェクトです。Pythonでは、イテレータオブジェクトは2つのメソッドを実装します。iter() そして next()。
文字列、リスト、またはタプルオブジェクトを使用して、イテレータを作成できます。
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
A generator は、yieldメソッドを使用して一連の値を生成または生成する関数です。
ジェネレーター関数が呼び出されると、関数の実行を開始することなくジェネレーターオブジェクトを返します。next()メソッドが初めて呼び出されると、関数は、yieldステートメントに到達するまで実行を開始します。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()