第10回|Pythonのwhile文入門:条件つき繰り返しと無限ループの基本 | はじめてのPython

当サイトでは、コンテンツの一部に広告を掲載しています。
第10回|Pythonのwhile文入門:条件つき繰り返しと無限ループの基本 | はじめてのPython

はじめてのPython | 第10回

目次

1. はじめに

この回では、条件が成り立つ間だけ処理を繰り返す while 文を学びます。前回の for 文は、決まった回数の繰り返しに向いていました。

一方で、終了する回数が最初から決まっていない処理もあります。そのような場合は、条件を見ながら繰り返す while 文が適しています。

2. この回で学ぶこと

  • while の基本
  • 条件が成り立つ間だけ繰り返す方法
  • 変数を更新しながら繰り返す考え方
  • 無限ループに注意すること
  • break の基本

3. 概念の説明

while 文は、指定した条件が True の間、同じ処理を繰り返します。

基本の形は次のようになります。

while 条件:
    繰り返したい処理

たとえば、次のコードは count が 5 未満の間だけ繰り返します。

count = 0

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

このコードでは、count に 0、1、2、3、4 が順番に入ります。count = count + 1 で値を更新しているため、いずれ count < 5False になって繰り返しが終わります。

もし値を更新しなければ、条件がずっと True のままになり、処理が終わらないことがあります。これを無限ループと呼びます。

また、break を使うと、条件がまだ True でも途中で繰り返しを終了できます。

4. サンプルコード

次のコードを見てください。

count = 1

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

print("繰り返しが終わりました")

このコードでは、1 から 5 までを表示してから繰り返しを終了します。

5. 実行手順

まず、while_sample.py というファイルを作ります。

touch while_sample.py

while_sample.py をエディターで開き、次のコードを書いて保存します。

count = 1

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

print("繰り返しが終わりました")

保存したら、ターミナルで次のコマンドを実行します。

python3 while_sample.py

実行結果は次のようになります。

1
2
3
4
5
繰り返しが終わりました

6. コードの読み方

  • count = 1 は、繰り返しで使う変数を 1 で初期化しています。
  • while count <= 5: は、count が 5 以下の間だけ処理を続けるという意味です。
  • 最初の count は 1 なので、条件は True です。
  • print(count) は、その時点の count を表示しています。
  • count = count + 1 は、count を 1 増やしています。
  • この更新があるため、count は 1、2、3、4、5 と変化します。
  • count が 6 になると、count <= 5False になります。
  • その時点で while 文の繰り返しは終わり、最後の print("繰り返しが終わりました") が実行されます。

7. 初学者がつまずきやすい点

  • while の行の最後には : が必要
  • 繰り返す処理はインデントする
  • 条件に使う変数を更新しないと終わらないことがある
  • while は回数ではなく条件で繰り返す
  • forwhile は用途が少し違う

for は決まった回数の繰り返しに向いています。while は、条件が成り立つ間だけ続けたい処理に向いています。

8. よくあるエラー

1つ目は、: を忘れた場合です。

SyntaxError: expected ':'

たとえば次のような書き方です。

while count < 5
    print(count)

2つ目は、インデントが正しくない場合です。

IndentationError: expected an indented block

たとえば次のような書き方です。

while count < 5:
print(count)

3つ目は、条件に使う変数を更新せず、処理が終わらなくなる場合です。

count = 1

while count <= 5:
    print(count)

このコードは文法エラーにはなりませんが、count が変わらないため、条件がずっと True のままになります。実行が止まらないときは、Control + C で終了できます。

9. 練習用コード

次のコードを practice_while.py として保存して実行してください。

number = 10

while number > 0:
    print(number)
    number = number - 1

print("終了")

実行したあとで、なぜ 10 から 1 まで表示されるのか確認してください。

余裕があれば、number = 5 に変えたり、break を使って 3 で止めたりして動きを確認してください。

10. この回で理解しておくこと

  • while 文は条件が True の間だけ処理を繰り返す
  • 条件に使う変数は繰り返しの中で更新することが多い
  • 更新しないと無限ループになることがある
  • break を使うと途中で繰り返しを終了できる
  • for は回数が決まっているとき、while は条件で続けるときに向いている

11. まとめ

今回は、while 文を使った条件つきの繰り返しを確認しました。

while 文は、入力待ちや条件に応じた繰り返しなど、回数が最初から決まっていない処理でよく使います。

for 文との違いと、無限ループを避けるための更新処理を合わせて理解しておくことが重要です。

12. 次回予告

次回は、リストを使って複数の値をまとめて扱う方法を学びます。複数のデータを順番に処理する基本を確認します。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

のいのアバター のい UNIX Cafe マスター

Macintosh Color Classicから始まった旅は、長いWindows時代を経て、Windows10のサポート終了をきっかけにUNIXの世界へ戻ってきました。UNIX Cafeでは、UNIX・Linux・そしてMacな世界を、むずかしい言葉を使わず、物語のように書いています。プログラミングは、アイデアをコンピューターに伝えるための言葉です。簡単な単語と文法を覚えれば、誰でもコマンドを使えます。ぜひ一度、やさしいプログラミングの世界をのぞいてみてください。

Created by UNIX Cafe

目次