Python While ループのすべてと例

Python While ループのすべてと例

ソースノード: 3091323

概要

while ループは Python の基本的な制御フロー ステートメントであり、特定の条件が true である限りコード ブロックを繰り返し実行できます。これは、反復的なタスクを自動化し、一連の値を反復処理する方法を提供します。この記事では、Python の while ループの構文、使用法、およびさまざまなアプリケーションについて説明します。

Pythonのwhileループ

目次

While ループの構文と構造

Python の while ループの構文は次のとおりです。

while condition:
    # code to be executed

条件は、ループを継続するか終了するかを決定するブール式です。条件が True とみなされる場合、ループ内のコード ブロックが繰り返し実行されます。条件が False になるとループは終了し、プログラムはループ後の次のステートメントに進みます。

基本的な使い方と例

while ループの基本的な使用法を理解するために、簡単な例から始めましょう。 1 から 5 までの数値を出力したいとします。以下に示すように、while ループを使用してこれを実現できます。

num = 1
while num <= 5:
    print(num)
    num += 1

出力

1

2

3

4

5

この例では、変数 `num` を 1 に初期化します。 `num` が 5 以下の場合、while ループは継続します。 ループ内で、`num` の値を出力し、次のコマンドを使用して 1 ずつ増分します。 「+=」演算子。このプロセスは、`num` が 6 になるまで繰り返され、条件が False になるとループは終了します。

ループ制御ステートメントによるフローの制御

Python には、while ループのフローを制御できるように、「break」、「 continue」、「 pass 」という 3 つのループ制御ステートメントが用意されています。

「ブレイク」ステートメント

`break` ステートメントは、ループ条件がまだ true である場合でも、ループを途中で終了するために使用されます。特定の条件を満たした場合にループを即座に終了させたい場合によく使用されます。以下に例を示します。

num = 1
while num <= 10:
    if num == 6:
        break
    print(num)
    num += 1

出力

1

2

3

4

5

この例では、if 条件内で `break` ステートメントを使用しているため、`num` が 6 になるとループが終了します。その結果、1 から 5 までの数字のみが出力されます。

「継続」ステートメント

「Continue」ステートメントは、ループ内の残りのコード ブロックをスキップして次の反復に移動するために使用されます。これは、特定の値または条件をスキップして次の反復を続行する場合に便利です。以下に例を示します。

num = 1
while num <= 5:
    if num == 3:
        num += 1
        continue
    print(num)
    num += 1

出力

1

2

4

5

この例では、if 条件内で「Continue」ステートメントを使用しているため、ループは値 3 をスキップします。その結果、数値 3 は出力されず、ループは次の反復に継続されます。

「パス」ステートメント

「pass」ステートメントは、ループ内で何もしたくない場合のプレースホルダーです。これは、開発中または空のループを作成する場合の一時的なプレースホルダーとしてよく使用されます。以下に例を示します。

num = 1
while num <= 5:
    pass
    num += 1

この例では、`pass` ステートメントは何も行わず、ループによって `num` の値が 6 になるまで増加します。

一般的な使用例とアプリケーション

While ループは Python で幅広い用途に使用できます。いくつかの一般的な使用例を見てみましょう。

条件が満たされるまで反復する

While ループは、特定の条件が満たされるまで反復する場合によく使用されます。たとえば、2 より大きい 1000 の最初のべき乗を見つけたいとします。これを実現するには、while ループを使用できます。

num = 1
while num <= 1000:
    num *= 2
print(num)

出力

1024

この例では、ループは `num` が 1000 を超えるまで続きます。反復ごとに、`num` が 2 倍され、最終値が出力されます。

ユーザー入力の検証

While ループは、ユーザー入力を検証し、入力が特定の基準を満たしていることを確認するのに役立ちます。たとえば、ユーザーに正の整数を入力するように求めるとします。 while ループを使用して、有効な整数が繰り返し入力されるまで入力を求めることができます。

while True:
    try:
        num = int(input("Enter a positive integer: "))
        if num > 0:
            break
        else:
            print("Invalid input. Please enter a positive integer.")
    except ValueError:
        print("Invalid input. Please enter a valid integer.")

この例では、有効な正の整数が入力されるまでループが無限に続きます。 `try-excel` ブロックは、入力を整数に変換する際の潜在的なエラーを処理します。

無限ループの作成

While ループを使用すると、特定の条件が満たされるまで無限に継続する無限ループを作成できます。たとえば、「He​​llo, World!」を出力する単純な無限ループを作成してみましょう。繰り返し:

while True:
    print("Hello, World!")

この例では、ループ条件は常に True であるため、ループは無限に継続します。ループを終了するには、「break」ステートメントを使用するか、プログラムの実行を中断します。

無限ループは、リアルタイム監視またはログ システムのコンテキストで役立つ場合があります。特定のイベントや変更についてシステムまたはネットワークを継続的に監視し、情報を記録する必要がある状況を想像してください。無限ループを使用して、これらの条件をチェックし、適切なアクションを常に実行することができます。

ゲームループの実装

While ループは、ゲーム フローを制御し、ユーザー入力を処理するゲーム ループを実装するためにゲーム開発でよく使用されます。通常、ゲーム ループは、ゲーム状態の更新、ゲーム グラフィックスのレンダリング、ユーザー入力の処理という 3 つの主要コンポーネントで構成されます。簡略化した例を次に示します。

game_running = True
while game_running:
    # Update game state
    # Render game graphics
    # Handle user input

この例では、「game_running」変数が True である限りループが継続します。ループ内で、ゲームの状態を更新し、ゲームのグラフィックをレンダリングし、ユーザー入力を処理します。このプロセスは、ゲームが終了するか、プレイヤーが終了を選択するまで繰り返されます。

こちらもお読みください: データ サイエンスをゼロから学ぶための完全な Python チュートリアル

ネストされた While ループとループのネスト

Python while ループをネストできます。つまり、while ループを別の while ループの中に入れることができます。これは、反復タスク内で反復タスクを実行する必要がある場合に便利です。以下に例を示します。

outer_num = 1
while outer_num <= 3:
    inner_num = 1
    while inner_num <= 3:
        print(outer_num, inner_num)
        inner_num += 1
    outer_num += 1

出力

1 1

1 2

1 3

2 1

2 2

2 3

3 1

3 2

3 3

この例では、1 から 3 を反復する外側の while ループと、外側のループの反復ごとに 1 から 3 を反復する内側の while ループがあります。内側ループ内の print ステートメントは、両方のループ変数の値を表示します。

While ループを使用するためのヒントとベスト プラクティス

ループは強力な構造ですが、正しく使用しないとエラーが発生しやすくなります。 while ループを使用するときに留意すべきヒントとベスト プラクティスをいくつか示します。

変数を適切に初期化する

while ループに入る前に、ループ変数を初期値に初期化します。これにより、ループ条件が正しく評価され、予期しない動作が防止されます。例えば:

count = 0
while count < 10:
    print(count)
    count += 1

この例では、ループに入る前に変数 `count` を 0 に初期化します。

ループを確実に終了する

無限ループを回避するには、ループ条件が最終的に False になることを常に確認してください。これは、ループ変数を更新するか、「break」などのループ制御ステートメントを使用することによって実現できます。例えば:

num = 1
while num <= 10:
    if num == 6:
        break
    print(num)
    num += 1

この例では、break 文により num が 6 になった時点でループが終了します。

無限ループの回避

while ループを使用する場合は、終了しない無限ループが作成されないよう注意してください。無限ループはプログラムのクラッシュを引き起こし、過剰なシステム リソースを消費する可能性があります。ループ条件を常に再確認し、ある時点で False になる可能性があることを確認してください。

読みやすく保守しやすいコードを書く

While ループは、適切に記述しないと複雑になり、理解しにくくなる可能性があります。意味のある変数名を使用し、ループの目的を説明するコメントを追加し、複雑なタスクを小さなサブタスクに分割します。これにより、コードがより読みやすく、保守しやすくなります。

高度なテクニックとコツ

While ループを高度な方法で使用して、特定のタスクを実行できます。ここでは、高度なテクニックとコツをいくつか紹介します。

Else ステートメントによるループ

Python では、while ループで else ステートメントを使用して、ループ条件が False になったときにコード ブロックを実行できます。もう 1 つのブロックは、ループが Break ステートメントなしで正常に完了した場合にのみ実行されます。以下に例を示します。

num = 1
while num <= 5:
    print(num)
    num += 1
else:
    print("Loop completed")

出力

1

2

3

4

5

ループが完了しました

この例では、ループが正常に完了した後に else ブロックが実行されます。

リストと文字列での While ループの使用

While ループを使用すると、インデックス変数を使用してリストと文字列を反復処理できます。以下に例を示します。

fruits = ["apple", "banana", "cherry"]
index = 0
while index < len(fruits):
    print(fruits[index])
    index += 1

出力

リンゴ

banana

チェリー

この例では、while ループはインデックス変数を使用して「fruits」リストの要素を反復処理します。

こちらもお読みください: Python の組み込みデータ構造について知っておくべきこと – 初心者ガイド!

Python の他のループ構造との比較

While ループは、Python で使用できるいくつかのループ構造の 1 つにすぎません。 while ループと for ループおよび再帰を比較してみましょう。

While ループと For ループの比較

ループとループはどちらも反復に使用されますが、使用例は異なります。 while ループはより柔軟で複雑な条件を処理できますが、for ループは一連の値を反復処理するのに適しています。 While ループは、正確な反復回数が事前にわからない場合、または複雑な計算を実行する必要がある場合に便利です。ループは、リストや文字列などの一連の値を反復処理する場合に便利です。

While ループと再帰

再帰は、関数がそれ自体を呼び出して問題を解決する手法です。 while ループと同様の繰り返しタスクを実現するために使用できますが、いくつかの違いがあります。 While ループは、明確な終了条件があり、固定回数の反復を実行する必要がある反復タスクに適しています。再帰は、検索、並べ替え、ツリー トラバーサル アルゴリズムなど、より小さなサブ問題に分割された問題を解決するのに適しています。

まとめ

この記事では、Python の while ループの概念について説明しました。その構文、基本的な使い方、さまざまな応用について学びました。また、while ループを使用するためのヒント、ベスト プラクティス、よくある間違い、高度なテクニックについても説明しました。最後に、while ループを Python の他のループ構造と比較しました。この知識があれば、while ループを効果的に使用して反復タスクを自動化し、Python プログラム内の値のシーケンスを反復処理できるようになります。

AI と ML の卓越性の力を解き放ちましょう!今すぐ登録してください 認定 AI & ML BlackBelt Plus プログラム あなたのスキルを新たな高みに引き上げましょう。最新テクノロジーを習得する機会をお見逃しなく – 今すぐキャリアを変革しましょう!

また、オンラインで Python コースをお探しの場合は、当社の – Pythonプログラムの紹介 今日!

タイムスタンプ:

より多くの 分析Vidhya