Pythonでリトライ処理を実装する方法を完全解説!try-except応用を初心者向けにやさしく理解
生徒
「Pythonで処理が失敗したときに、もう一度やり直すことはできますか?」
先生
「できますよ。Pythonの例外処理であるtry-exceptを工夫すると、リトライ処理を作れます。」
生徒
「失敗したら自動で再挑戦する、という感じですか?」
先生
「その通りです。順番に、ゆっくり仕組みを見ていきましょう。」
1. Pythonのリトライ処理とは何か
Pythonのリトライ処理とは、処理が失敗したときに、もう一度同じ処理をやり直す仕組みのことです。たとえば、自動販売機でお金が詰まったときに、もう一度ボタンを押し直すようなイメージです。
プログラムでは、通信の失敗や入力ミスなど、すぐには直せない問題が起きることがあります。そのときに何もせず終わるのではなく、再挑戦できるようにするのがリトライ処理です。
2. try-exceptのおさらい
Pythonの例外処理は、try-exceptという書き方を使います。tryの中に「うまくいかないかもしれない処理」を書き、失敗したときはexceptが実行されます。
これは、作業中に失敗したら「もう一度やり直す」という合図を出す仕組みだと考えると分かりやすいです。
try:
number = int("abc")
except ValueError:
print("数字に変換できませんでした")
数字に変換できませんでした
3. リトライ処理の基本的な考え方
リトライ処理では、「失敗したら再実行する」という流れを作ります。Pythonでは、try-exceptと回数を数える仕組みを組み合わせて実現します。
初心者の方は、「何回までやり直すか」を決めておくことが大切です。無限に失敗し続けると、プログラムが止まらなくなってしまいます。
4. 回数を決めたリトライ処理の例
ここでは、最大3回まで処理をやり直す例を見てみましょう。失敗したら回数を減らし、0になったら終了します。
retry_count = 3
while retry_count > 0:
try:
value = int("abc")
print("成功しました")
break
except ValueError:
retry_count -= 1
print("失敗しました。再試行します")
失敗しました。再試行します
失敗しました。再試行します
失敗しました。再試行します
5. 入力ミスを想定したリトライ処理
リトライ処理は、ユーザーの入力ミスにもよく使われます。数字を入力してほしいのに文字が入った場合、もう一度入力を求める形です。
retry = 2
while retry > 0:
try:
age = int("ten")
print("年齢は", age)
break
except ValueError:
retry -= 1
print("正しい数字を入力してください")
6. exceptの中でできること
exceptの中では、エラーメッセージを表示したり、回数を減らしたりできます。ここがリトライ処理の中心部分です。
失敗した理由を表示することで、何が起きているのかが分かりやすくなります。これは、初心者にとってとても重要な考え方です。
7. リトライ処理で気をつけるポイント
Pythonでリトライ処理を書くときは、必ず終了条件を作りましょう。回数制限がないと、同じ失敗をずっと繰り返してしまいます。
また、すべてのエラーを無理にやり直す必要はありません。本当に再挑戦する価値がある処理かどうかを考えることも大切です。
8. Pythonの例外処理とリトライ処理の役割
Pythonの例外処理とリトライ処理を組み合わせることで、失敗に強いプログラムを作れます。これは、人が何度かやり直しながら作業するのと同じ感覚です。
最初から完璧を目指すのではなく、失敗したら立て直す。この考え方が、Pythonのリトライ処理の基本です。