【Python】「終わるまで自動で実行」を実現する!while文の基本と安心な無限ループの止め方

【作業自動化】Python
スポンサーリンク

今回は、Pythonの基本構文の一つである 「while文」の扱い方について解説していきます。 

【作業自動化】Pythonの記事を見る 

while文の役割と「for文」との明確な違い

繰り返し処理といえば「for文」が有名ですが、for文は「10回繰り返す」というように、実行回数があらかじめ決まっている場面で活用します。

対して今回紹介する「while文」は、「指定した条件を満たしている間は処理を継続する」という命令になります。

実務の現場に置き換えて考えると、イメージがより掴みやすくなります。

  • for文: 「この書類を10枚コピーする」(回数指定)
  • while文: 「インクが切れるまでコピーを続ける」(条件指定)

処理の目的に応じて適切に使い分けることで、業務自動化の対応力が大きく広がります。

実際に動かして学ぶ!while文の基本構文

百聞は一見に如かず。まずはコピペして動かしてみましょう。

今回は「残りのタスクが0になるまで1つずつカウントダウンする」プログラムを作成します。

▼ 基本のコード

# タスクの残数を5に設定
task_count = 5

# タスクが0より大きい間は繰り返す
while task_count > 0:
    print(f"残りのタスクはあと {task_count} 個です。作業中...")
   
    # タスクを1つ減らす
    task_count = task_count - 1

print("全てのタスクが完了しました!")

▼ 実行結果

残りのタスクはあと 5 個です。作業中...
残りのタスクはあと 4 個です。作業中...
残りのタスクはあと 3 個です。作業中...
残りのタスクはあと 2 個です。作業中...
残りのタスクはあと 1 個です。作業中...
全てのタスクが完了しました!

いかがでしょうか?勝手に数字が減って、最後には終わりましたよね。

ポイントはtask_count = task_count – 1です。これがないと、タスクが永遠に5個のまま減らないので、プログラムが一生終わりません。

「無限ループ」の仕組みと安全な強制終了コマンド

さて、ここからが本題です。この手法で私たちが一番恐れるもの。それが意図せず処理が回り続ける「無限ループ」です。

先ほどのコードでタスクを減らすステップを省略してしまうと、Pythonは画面上にメッセージを出力し続けてしまいます。構文エラーではないため自動停止せず、ターミナルがログで埋め尽くされて戸惑う原因になります。

ただし、適切な停止手順を把握しておけば慌てる心配はありません。万が一プログラムが止まらなくなった場合は、キーボードのショートカットで手動停止(強制終了)を行います。

  • Ctrl + C (コントロールキーを押しながら、C)
  • ※Macの方は Control + C または Command + .

このコマンドを入力することで、実行中の処理に対して即座に割り込み終了の信号を送ることができます。

応用編:指定したキーワード入力でループを抜ける方法

応用として、対話型の入力受付処理を作成してみます。

「ユーザーが『ok』と入力するまで聞き続ける」仕組みを構築します。

▼ 応用のコード

user_input = ""

# 入力が「ok」じゃない間は繰り返す
while user_input != "ok":
    user_input = input("次へ進むには ok と入力してください: ")

print("確認しました。処理を次に進めます!")

この仕組みを応用すると、指定外の誤入力を防止する入力バリデーション(データチェック機能)の実装にも役立ちます。

最後に

while文は、条件を柔軟に設定することで、for文以上に幅広い自動化処理を組み立てることができます。

仮に意図しないループが発生してもPC本体に影響はありませんし、強制終了コマンドでいつでも安全に停止できます。

まずは上記のサンプルコードをベースに、変数の数値や条件文を書き換えて実際の挙動を試してみてください!

【作業自動化】Pythonの記事を見る 

この記事を書いた人
ぐー

手取り15万円の会社員でしたが、年間100万円以上節約していました。
株式投資で年間360万円以上投資し、iDeCoも併用しています。
総資産はアッパーマス層に到達しました。
資格は日商簿記3級を持っています。

このブログでは、私が実践してきた節約術やリアルな資産運用、生産性を高めるITスキルについて発信しています。

生活を豊かにするため、高配当株投資で年間配当金60万円をめざしています。
現在の年間配当金は30万円ほどです。

ゲーム・漫画・アニメなどが好きです。
一緒に資産形成をがんばりましょう!
よろしくお願いします!

ぐーをフォローする
【作業自動化】PythonITスキル
スポンサーリンク
ぐーをフォローする

コメント

タイトルとURLをコピーしました