Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ Pythonにおけるアサーションの活用:デバッグとコード整合性の確保 | Pythonのエラー処理の習得
Python構造化プログラミング
セクション 2.  4
single

single

bookPythonにおけるアサーションの活用:デバッグとコード整合性の確保

メニューを表示するにはスワイプしてください

Python では、assert 文は特定の条件がコード内で真であることを検証するための組み込み機能。プログラム実行中の特定の時点で、必要な前提条件が満たされているかを確認するための整合性チェックとして機能。

assert 文の構文は次の通り:

assert condition, message

Python では、アサーションは assert 文によって実行される。アサーションは条件をチェックし、その条件が False の場合、オプションのエラーメッセージとともに AssertionError 例外を発生させる。

12345
def calculate_average(grades): assert len(grades) > 0, "List of grades cannot be empty" return sum(grades) / len(grades) calculate_average([]) # Throw an error
copy

この例では、関数は平均点を計算し、アサーションによって成績リストが空でないことを計算前に保証。成績リストが空の場合、アサーションが失敗し、ゼロ除算を防ぎ、プログラムロジックの明確なエラーを示す。

よく利用されるアサーションのカテゴリは以下の通り:

  • 値のアサーション: デバッグやテストの場面で、プログラム内で使用される値が期待通りであることを検証するために使用。例として、assert x >= 18 や前述の assert len(grades) > 0 など;

  • 型のアサーション: Python のような動的型付け言語では、変数の型が変化する可能性があるため特に有用。例えば、isinstance(x, int) を使うことで x が整数型であることを確認;

  • コレクションのアサーション: リストや辞書などのコレクションが特定の要素を含むか、または特定の条件を満たしているかをチェックするために使用。例として、assert item in my_listassert key in my_dict など;

  • 例外のアサーション: 主にユニットテスト(最後のセクションで学習予定)で、コードが正しく例外を処理するかを確認するために使用。例えば、assert_raises(ValueError, int, 'abc') は 'abc' を整数に変換しようとした際に ValueError が発生することを確認。同様に、assert_raises(ExceptionType, my_function, arg1, arg2) は my_function を arg1 と arg2 で呼び出した際に ExceptionType 型の例外が発生することを検証。

タスク

スワイプしてコーディングを開始

ユーザーデータを管理するサンプルプロジェクトにアサーションを追加し、ユーザー情報が特定の基準を満たしていることを保証します。

  1. user_id がすでに users 辞書に存在しないことを確認し、重複を防止します。
  2. user_id が整数型であることを保証し、ユーザーIDの型の一貫性を保ちます。
  3. user_info が辞書として渡されていることを確認し、データ型エラーを防ぎます。

解答

Switch to desktop実践的な練習のためにデスクトップに切り替える下記のオプションのいずれかを利用して、現在の場所から続行する
すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 2.  4
single

single

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

some-alt