今回は、Pythonで無限ループを終了する方法を解説していきます。
ループについて詳しく知りたい方は、次の記事が参考になると思います。
参考:【Python入門】初めてのプログラミング(while文)
参考:Pythonで0.1刻みにfor文のループをする方法
コンテンツ
無料オンライン相談を活用しよう!
Pythonというプログラミング言語は機械学習の人気の高まりなどもあり、様々なスクールが無料説明会を開催しています。
その中でも「Freeks(フリークス)|業界初!10,780円のサブスク型プログラミングスクール」がオススメです。Pythonを効率よく学びたいという方はまずは適性を知るためにも無料説明会を利用しましょう。
無限ループとは
Pythonで、繰り返し処理をするにはwhile文やfor文を用いるのが一般的です。
このような繰り返し処理を行う際に、処理が終わらず永遠に実行されてしまう状態のことを「無限ループ」といいます。
無限ループの例として次の2点をあげますので順番に解説していきます。
- while文での無限ループ
- for文での無限ループ
順番に見ていきましょう!
while文での無限ループ
無限ループの1つ目の例として次のコードを見てください。
この例では、while文の条件式がTrueとなっているため、永遠に”ループ”という文字が出力されます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
while True: print("ループ") """ ループ ループ ループ ・・・ ループ ループ ループ (以下省略) """ |
while文の使い方を詳しく知りたい方は、「【Python入門】初めてのプログラミング(while文)」を参考にしてください。
for文での無限ループ
次はfor文と内包表記を用いたループです。
このコードの問題点は、6行目で、「i + 1」という要素を追加しているため、リストの中身が空になることなく、永遠に処理が実行されてしまいます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
L = [0] for i in L: print(i) L.append(i + 1) """ 0 1 2 ・・・ 99998 99999 100000 (以下省略) """ |
これを解決するには、6行目のappend関数を消せば問題なく実行できます。
要素の追加方法について詳しく知りたい方は、「Pythonでリストに要素を追加する方法【append, extend, insert】(スライス)」を参考にしてください。
無限ループを終了する方法
これらの無限ループを終了する方法は以下の3つです。
- break文を用いる
- 条件式を付ける
- 時間制限を設ける
順番に解説していきます!
break文を用いる
無限ループを抜け出す最も一般的な方法はbreak文を用いることです。break文を用いることで、1つ分のループを抜け出すことができます。
多重ループになっている場合は、ループの数だけbreak文を用いることで完全にループから抜け出すことができます。
次の例では単純に1つのループから抜け出す方法です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
count = 0 while True: print(count) count += 1 # countが5より大きくなったらループを抜け出す。 if count > 5: break """ 0 1 2 3 4 5 """ |
if文とbreak文の組み合わせはよく使うのでマスターしよう!
条件式を付ける
次はwhile文の条件式を用いる場合の例です。
先ほどは条件式を「True」とすることで無限ループになっていましたが、次の場合では、条件式を設定し、その条件が成り立つ間だけループをするという処理になっています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
count = 0 while count < 5: print(count) count += 1 """ 0 1 2 3 4 """ |
こちらもwhile文の基本なのでマスターしたいですね!
時間制限を設ける
最後に制限時間を設ける場合です。
ループを抜ける方法はbreak文を用いるのと変わりませんが、あまりにも長い処理の場合、時間制限を設けるのが有効になる場合もあります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
import time # 実行開始の時間を保存 start = time.time() count = 0 # 実行時間が1秒未満ならばループ while time.time() - start < 1: print(count) count += 1 """ 0 1 2 ・・・ 15170 15171 15172 """ |
ただしあまり使うことはないと思います。参考までにしてください。
強制終了する方法
無限ループを終了するための処理が向けてしまっていた時には強制終了をする必要があります。この時のショートカットキーを覚えてくと便利です。
- Windowsの場合:CTRL + C
- Macの場合:control + C
- google colaboratoryの場合:CTRL + M + I
ループが終了しなくなった時に使いましょう!
まとめ
今回は、無限ループを終了する方法について解説しました。その方法は次の3つです。
- break文を用いる
- 条件式を付ける
- 時間制限を設ける
これらの方法は、while文やfor文などのループを用いる際に重要となる基本の処理なのでぜひとも使いこなせるようになりましょう。
参考:【Python入門】初めてのプログラミング(while文)
参考:Pythonで0.1刻みにfor文のループをする方法
無料の説明会を有効活用しよう!
独学での学習は孤独感を感じやすく挫折してしまう初心者も多いです。また、参考書を購入しても全く読む気にならないという方も多いはずです。
それでも、なんとかPythonの勉強を行い、高スキルなエンジニアを目指したいという方は無料で受けられるオンライン説明会に参加してみることも一つの手です。
Pythonというプログラミング言語は機械学習の人気の高まりなどもあり、様々なスクールが無料説明会を開催しています。
その中でも「Freeks(フリークス)|業界初!10,780円のサブスク型プログラミングスクール」がオススメです。Pythonを効率よく学びたいという方はまずは適性を知るためにも無料説明会を利用しましょう。
最後まで読んでいただきありがとうございます!