Pythonでリトライ処理を実装する方法(try-exceptの応用)を初心者向けに徹底解説
生徒
「Pythonで処理が失敗したとき、もう一度やり直す方法ってありますか?」
先生
「ありますよ。Pythonではtryとexceptを使って、失敗した処理をもう一度実行するリトライ処理を作れます。」
生徒
「パソコンをほとんど触ったことがなくても理解できますか?」
先生
「大丈夫です。身近な例えを使いながら、順番に説明していきましょう。」
1. リトライ処理とは何か
リトライ処理とは、何かの理由で処理が失敗したときに、同じ処理をもう一度やり直す仕組みのことです。例えば、自動販売機でお金を入れたのに商品が出てこなかった場合、返金ボタンを押してもう一度操作します。この「もう一度やり直す」という考え方が、プログラムの世界でいうリトライ処理です。
Pythonでは、エラーが発生したときにプログラムが止まってしまうことがあります。そのままだと不便なので、失敗しても数回は自動でやり直す仕組みを作ることで、安定した動きを実現できます。
2. try-exceptの基本をおさらい
try-exceptは、エラーが起きそうな処理を安全に実行するための書き方です。まずtryの中に処理を書き、問題が起きた場合はexceptに書いた内容が実行されます。
これは「やってみて、ダメだったら別の対応をする」という考え方です。初心者の方は、失敗しても慌てず別の行動を取る保険のようなものだと覚えると理解しやすくなります。
try:
number = int("abc")
print(number)
except:
print("数字に変換できませんでした。")
数字に変換できませんでした。
3. 一番シンプルなリトライ処理の例
リトライ処理は、for文やwhile文と組み合わせることで実現できます。ここでは、最大で3回まで同じ処理をやり直す例を見てみましょう。
これは「3回まで挑戦して、成功したらそこで終わる」という考え方です。日常生活で言えば、暗証番号を3回まで入力できる仕組みに近いです。
for i in range(3):
try:
number = int(input("数字を入力してください:"))
print("入力された数字は", number)
break
except:
print("入力に失敗しました。もう一度やり直します。")
4. 失敗した回数を表示するリトライ処理
何回失敗したのかが分かると、利用する人にとって親切になります。ここでは、何回目の失敗なのかを表示するリトライ処理を紹介します。
これは「今何回目の挑戦か」を教えてくれるので、初心者にも状況が分かりやすくなります。
for i in range(3):
try:
value = int(input("数字を入力してください:"))
print("成功しました")
break
except:
print(i + 1, "回目の失敗です")
5. 少し待ってから再挑戦するリトライ処理
すぐにやり直すのではなく、少し時間を空けてから再挑戦したい場合もあります。そのときはtime.sleepを使います。
これは、人が深呼吸してからもう一度挑戦するようなイメージです。慌てず落ち着いて再実行できます。
import time
for i in range(3):
try:
print("処理を実行します")
raise Exception
except:
print("失敗しました。少し待ちます。")
time.sleep(2)
6. 関数を使ったリトライ処理
同じリトライ処理を何度も使いたい場合は、関数にまとめると便利です。関数とは、処理をひとまとめにした箱のようなものです。
箱にしておくことで、必要なときに何度でも同じ動きを呼び出せます。
def retry_action():
for i in range(3):
try:
print("処理に挑戦します")
raise Exception
except:
print("失敗しました")
retry_action()
7. リトライ処理を使うときの注意点
リトライ処理は便利ですが、無限にやり直すとプログラムが終わらなくなります。そのため、必ず回数の上限を決めることが大切です。
また、なぜ失敗したのかを表示するメッセージを入れておくと、後から原因を調べやすくなります。これは初心者がつまずきにくくするための重要な工夫です。
8. リトライ処理が活躍する場面
リトライ処理は、入力ミスが起きやすい場面や、一時的にうまくいかない処理でよく使われます。例えば、ユーザーからの入力、ファイルの読み込み、簡単な通信処理などです。
一度の失敗で止まらず、何度か挑戦できる仕組みを作ることで、使いやすく安心できるプログラムになります。