Python - whileループ:初心者のガイド
こんにちは、Pythonプログラマー志願者の皆さん!今日は、素晴らしいwhileループの世界に飛び込んでいきましょう。あなたの親しみのある近所のコンピューター先生として、私はこの旅をステップバイステップに案内してあげます。だから、お気に入りの飲み物をお持ちして、快適に座り、一緒にこの素晴らしい冒険に出かけましょう!
whileループとは?
具体的な内容に飛び込む前に、まず基本から始めましょう。ダイスを振るゲームをして、6が出るまで続けるということを想像してみてください。どれだけ回転させる必要があるかは事前に分からないでしょうか?そんなときに便利なのがwhileループです!
Pythonのwhileループは、特定の条件が真である限りブロックのコードを繰り返し実行することができます。それは、Pythonに「これを続けて、止めるように言ったら止まれ」と言うようなものです。
基本的な構文
最も簡単な形のwhileループは以下のようになります:
while 条件:
# 実行されるコード
簡単なでしょうか?それでは、それを分解してみましょう:
-
while
キーワードは、Pythonにwhileループを開始していることを示します。 -
条件
は、ループが続けられるか停止されるかを決定するブール式です。 - インデントされたコードブロックは、条件が真である限り繰り返し実行されます。
簡単な例
それでは、ダイスローリングゲームを使って実践してみましょう:
import random
roll = 0
while roll != 6:
roll = random.randint(1, 6)
print(f"You rolled a {roll}")
print("Congratulations! You rolled a 6!")
この例では、以下のことが行われています:
-
random
モジュールをインポートしてランダムな数字を生成します。 -
roll
を0に初期化します。 -
roll
が6でない限りwhileループが続きます。 - ループの中で、1から6のランダムな数字を生成し、それを表示します。
- 6が出たら、ループが終了し、祝福のメッセージが表示されます。
このコードを何度か実行すると、それぞれ異なる回数で6が出ることがあるでしょう。それがwhileループの美点です - 事前に分からない回数の反復が必要な場合に最適です。
Pythonの無限whileループ
それでは、少し危険で刺激的な話題に移りましょう - 無限ループ。それは、お気に入りのチップスの袋を開けたようなものです;一度始めたら、止めるのが難しいです!
無限ループは、条件が常に真であるために終わらないwhileループです。これはまるで災いの予感のように聞こえるかもしれませんが、実際にはプログラミングにおいて無限ループの正当な使用がいくつかあります。
以下は簡単な例です:
while True:
print("This is an infinite loop!")
このループは、永遠に "This is an infinite loop!" を表示し続けます... あるいは、少なくとも手動でプログラムを停止するまで(通常はCtrl+Cを押すことで)。
より実用的な例
ユーザーが終了するまで続ける簡単な電卓を作成してみましょう:
while True:
print("\nSimple Calculator")
print("1. Add")
print("2. Subtract")
print("3. Quit")
choice = input("Enter your choice (1-3): ")
if choice == '3':
print("Thanks for using the calculator. Goodbye!")
break
elif choice in ('1', '2'):
num1 = float(input("Enter first number: "))
num2 = float(input("Enter second number: "))
if choice == '1':
print(f"Result: {num1 + num2}")
else:
print(f"Result: {num1 - num2}")
else:
print("Invalid input. Please try again.")
この例では、以下のことが行われています:
- 無限ループを使用して電卓を動作させ続けます。
- ユーザーは足し算、引き算、または終了を選ぶことができます。
- ユーザーが終了(オプション3)を選択した場合、
break
文を使用してループを終了します。 - オプション1と2の場合、計算を行い結果を表示します。
- ユーザーが無効なオプションを入力した場合、エラーメッセージを表示しループが続きます。
これは、対話型プログラムを作成する際に無限ループがどのように有用であるかの素晴らしい例です!
Pythonのwhile-elseループ
それでは、Pythonのwhileループのユニークな機能であるelse節について調べてみましょう。それは、ループが正常に終了したときのためのバックアッププランのようなものです。
構文は以下のようになります:
while 条件:
# 条件が真の間に実行されるコード
else:
# ループ条件が偽になったときに実行されるコード
elseブロックは、whileループの条件が偽になったときに実行されます。しかし、ループがbreak
文によって終了された場合、elseブロックはスキップされます。
例:数字の検索
while-elseループを使用してリストの中で数字を検索してみましょう:
numbers = [1, 3, 5, 7, 9, 11, 13, 15]
target = 10
index = 0
while index < len(numbers):
if numbers[index] == target:
print(f"Found {target} at index {index}")
break
index += 1
else:
print(f"{target} not found in the list")
この例では、以下のことが行われています:
- リストの数字をループします。
- ターゲットが見つかった場合、その位置を表示しループを終了します。
- ターゲットが見つからず、ループが正常に終了した場合、elseブロックが実行されます。
これは、ループが完了しても見つからなかった場合にアクションを実行するのに特に便利です。
単一ステートメントスイート
時々、whileループが非常に簡単で1行のコードで済む場合があります。その場合、Pythonでは1行で書くことができます。それは、プログラミングのマイクロウェーブであり、簡便です!
構文は以下のようになります:
while 条件: ステートメント
以下はその例です:
count = 5
while count > 0: print(count); count -= 1
このコンパクトなループは、数字5から1までを表示します。
ただし、注意点として、単一行ループは便利ですが、過度に使用するとコードの可読性が低下する可能性があるため、読みやすさを優先することをお勧めします。
結論
おめでとうございます!Pythonのwhileループに関する素晴らしいツアーを完了しました。基本的なループから無限ループ、while-else構造、そして単一行ループまで、この重要なプログラミングコンセプトに対する堅実な基盤をお持ちでしょう。
覚えることをお勧めします。自分のwhileループを作成し、さまざまな条件を試してみて、何を構築できるかを見てください。誰しもが分からないが、次の大きなプロジェクトはプログラミングの世界で待っているかもしれません!
幸せなコーディングをお願いします。そして、あなたのループが望むときに常に終了することを願っています!
Credits: Image by storyset