上級Python開発コース
チャプター
>
レベル
例外処理
例外処理
目的
例外処理を使用して非常時用品を箱に詰め、発生する可能性のあるエラーを捕捉します。
後で使用するために、複数の非常時用品をキットにまとめ、木箱に保管する必要があります。これは学んだ一般的な関数を使って実行できる非常にシンプルな作業ですが、時には計画通りにいかないこともあります。プログラミング中に、エラーが画面に表示されたり、問題の発生箇所にエディタの赤いマーカーが表示されたりするのを見たことがあるかもしれません。これを防ぐために、try と except のコードブロックを設定できます。
これらのコードブロックは、例外を設定し、コードが停止する前にエラーを捕捉するために使用されます。動作の仕組みとしては、問題のあるまたはエラーが発生しやすいコードに対して try を使い、エラーが発生した場合は except を使ってそのコードを別のコードに切り替えます。例えば:
#The try code block attempts to run a code try: number + number + string #This code yeilds an error, you can't sum numbers with string except: #If an error occurs the except code block is run instead number + number + number #The code is switched out by a sum of three numbers instead
まずはフィールドにあるすべての道具を集めましょう。具体的には、水の缶、"thread"、そして3種類の色付きブランケット:"blue blanket"、"red blanket"、"green blanket" です。マップの上部に歩いて行き、3枚のブランケットを集めた後、明るい X マークの場所へ行き、collect() 関数を使用してコンテナから "thread" を入手してください。次に、マップの下部に移動し、水の缶をすべて集めましょう。
すべてのものを集めたら、青いカーペット上の暗い X マークの場所へ移動し、集めた材料を配置し始めます。まず、水の缶と thread をそれぞれ単位 2 と 3 の変数に格納します。例えば、water_can = 2 と thread = 3 のように。次に、以下の形式で先に作成した変数と色付きブランケットを組み合わせ、キットを変数として設定します:
blue_kit = water_can + thread + "blue blanket" red_kit = water_can + thread + "red blanket" green_kit = water_can + thread + "green blanket" # Add all elements together into kits for ease of storage
キットが blue_kit、red_kit、green_kit の各変数に組み立てられたら、対応する色の木箱に配置する時が来ました。しかし、コードがエラーを投げ出していることにお気づきかもしれません。なぜでしょうか?すべては正しく、指示通りに行われています。直感的にはうまくいくと思っても、実際にはそうならないことがあります。この場合、変数内の数値と文字列を足し合わせることはできないのです。
では、どのようにこの問題を解決するのでしょうか? try / except のコードブロックを使用してエラーを捕捉し、適切な代替手段に変換します。各 3 つの変数に対して、エラーが発生した場合には特定の文字列の代わりに数値に置き換えるよう、この例外処理を適用してください。
try: blue_kit = water_can + thread + "blue blanket" except: blue_kit = water_can + thread + 1
この場合はエラーが明らかですが、変数内の値が必ずしも単純でない場合や、条件によって異なる場合もあります。したがって、この手法はトラブルシューティングやランタイムエラーの捕捉に有用なツールとなります。
レベルをクリアするには、色付きカーペット上の暗い X マークまで歩き、各木箱に向かって place() 関数を使用し、対応する色のキット変数を正しい木箱に配置してください。