PR
更新:2024/10/12

【Python】whileの基本的な使い方・例題について

ふゅか
ふゅか
whileループって便利よね!Pythonで繰り返し処理を簡単にできるんだもの♪
はるか
はるか
うん、条件がTrueの限り、処理を繰り返す。それだけ。

1. whileの使い方

Pythonのwhileループは、指定された条件がTrueである限り、ループ内のコードを繰り返し実行します。条件がFalseになるとループは終了します。

1.1. 基本的な構文

while 条件:
    # 繰り返し実行されるコード

whileループの動作は次のようになります。

  1. 条件を評価します。
  2. 条件Trueの場合、ループ内のコードが実行されます。
  3. ループ内のコードがすべて実行された後、再び条件を評価します。
  4. 条件Trueの間は、このプロセスが繰り返されます。
  5. 条件Falseになると、ループは終了します。

2. whileを使ったプログラムの具体例

2.1. 例1:カウントアップ

次の例では、変数count0から5までカウントアップするwhileループです。

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

2.1.1. 期待される出力

0
1
2
3
4

2.1.2. 解説

  • まず、count0に初期化されています。
  • while count < 5の条件が成り立つ限り、print(count)によってcountの値が表示されます。
  • その後、count += 1countが1ずつ増加します。
  • 最終的に、count5になった時、条件count < 5Falseとなり、ループが終了します。

2.2. 例2:無限ループ

whileループは条件が常にTrueの場合、無限に実行されます。無限ループを避けるためには、ループ内で条件を変化させる必要があります。

count = 0
while True:
    print(count)
    count += 1
    if count >= 5:
        break

2.2.1. 期待される出力

0
1
2
3
4

2.2.2. 解説

  • ここでは、while True:が使われており、ループは無限に続きます。
  • しかし、count >= 5になった時、break文によってループが強制終了されます。break文がないと、無限にループが続きます。
ふゅか
ふゅか
無限ループも気をつけないとね。条件を変えないと永遠に終わらない!
はるか
はるか
breakで止めればいい。

2.3. 例3:ユーザー入力を受け取るwhileループ

whileループを使用して、ユーザーの入力に応じてループを制御することもできます。

user_input = ""
while user_input != "exit":
    user_input = input("コマンドを入力してください(終了するには'exit'を入力):")
    print(f"あなたは {user_input} を入力しました")

2.3.1. 期待される出力

コマンドを入力してください(終了するには'exit'を入力):hello
あなたは hello を入力しました
コマンドを入力してください(終了するには'exit'を入力):exit
あなたは exit を入力しました

2.3.2. 解説

  • ユーザーがexitと入力するまでループが続きます。
  • input()関数でユーザーからの入力を受け取り、その値をuser_inputに代入します。
  • user_input"exit"になると、while user_input != "exit"の条件がFalseになり、ループが終了します。
ふゅか
ふゅか
あ、ユーザーからの入力とwhileループを組み合わせることもできるよ!「exit」って入力するまで繰り返すの!
はるか
はるか
input()関数で入力を受け取って条件を評価する。それだけ。

3. whileの例題

3.1. 例題 1: 嘘を数えるプログラム

ある人が一日に嘘をつく回数を入力します。その人が嘘を1日につく回数がゼロになるまで、プログラムはその回数を合計して記録します。

期待される出力:

嘘をついた回数を入力してください: 3
嘘をついた回数を入力してください: 2
嘘をついた回数を入力してください: 1
嘘をついた回数を入力してください: 0
あなたがついた嘘の合計は 6 回です。

解答の手順:

  1. ユーザーから入力を受け取り、嘘の回数を整数として処理します。
  2. whileループを使用して、嘘の回数がゼロでない限り、入力された値を合計します。
  3. 嘘の回数がゼロになった時点でループを終了し、合計を表示します。

解答:

total_lies = 0
lies = int(input("嘘をついた回数を入力してください: "))
while lies != 0:
    total_lies += lies
    lies = int(input("嘘をついた回数を入力してください: "))
print(f"あなたがついた嘘の合計は {total_lies} 回です。")

3.2. 例題 2: 嘘つきゲーム

ユーザーは「嘘をつく」か「正直に言う」かを選択します。嘘をつくとスコアがマイナス1され、正直に言うとプラス1されます。スコアが-3になったらゲームオーバーです。

期待される出力:

「嘘をつく」か「正直に言う」かを選んでください: 嘘をつく
スコア: -1
「嘘をつく」か「正直に言う」かを選んでください: 正直に言う
スコア: 0
「嘘をつく」か「正直に言う」かを選んでください: 嘘をつく
スコア: -1
(繰り返し、スコアが-3になった場合終了)

解答の手順:

  1. スコアを0で初期化し、ユーザーの選択によってスコアを増減します。
  2. whileループで、スコアが-3に達するまでゲームを続けます。
  3. スコアが-3になるとループが終了し、ゲームオーバーを表示します。

解答:

score = 0
while score > -3:
    choice = input("「嘘をつく」か「正直に言う」かを選んでください: ")
    if choice == "嘘をつく":
        score -= 1
    else:
        score += 1
    print(f"スコア: {score}")
print("ゲームオーバー。スコアが-3になりました。")


check

Pythonの基本から応用まで、幅広くカバーする記事を公開中です。学習のポイントや実践的なコード例を通じて、Pythonの魅力と実用性を深く理解することができます。ぜひ、こちらの記事で気になる記事を見つけてください!

Pythonの記事のまとめ

PR