Python での Do-while ループのエミュレーション
Python では、標準の while ループは条件ステートメントで動作します。ただし、条件を評価する前にコードのブロックを少なくとも 1 回実行する do-while ループが有益なシナリオもあります。
True Flag を使用したエミュレーション:
do-while ループをシミュレートするには、True フラグを使用します。
done = False while not done: # Code block # Set 'done' to True to terminate the loop if condition: done = True
エミュレーションイテレータ:
もう 1 つの方法では、イテレータを使用します:
iterator = iter(my_list) while True: try: element = next(iterator) # Code block except StopIteration: break
このアプローチでは、最初にイテレータを初期化することで do-while ループの動作をエミュレートします。例外「StopIteration」が発生しない場合 (反復する要素が他にもあることを示します)、コード ブロックは反復子から次の要素をフェッチする前に実行されます。
リスト内包表記の使用:
より単純なケースでは、リスト内包表記を利用して同様のことを実現することもできます。機能:
[print(i) for i in my_list]
特定の使用例:
質問で述べたように、do-while ループはステート マシン シナリオで役立つ可能性があります。ファイル解析タスクの例を次に示します。
for line in input_file: while True: if current_state == 'CODE': if '//' in line: # Handle comment state current_state = 'COMMENT' else: # Handle code state elif current_state == 'COMMENT': if '//' in line: # Handle comment state else: # Handle code state and break to evaluate the next line current_state = 'CODE' break # Break if there are no more lines to parse if not line: break
このシナリオでは、do-while ループを使用することで、ステート マシンの遷移と条件付けの間に、ファイル内の各行が少なくとも 1 回処理されることが保証されます。チェックはループの反復内で処理されます。
以上がPython で Do-while ループをシミュレートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。