본문 바로가기
Error(Exception)/ERROR-PYTHON

[python] AssertionError

by 조조군 2024. 11. 18.
반응형

파이썬 오류: AssertionError

1. 오류 설명

  • AssertionErrorassert 문이 실패했을 때 발생하는 오류입니다.
  • assert 문은 디버깅 목적으로 사용되며, 조건이 False일 경우 프로그램을 중단하고 오류를 발생시킵니다.
  • 일반적으로 코드의 특정 상태가 예상과 다른 경우를 감지하기 위해 사용됩니다.

2. 오류 예시

x = 5
assert x > 10, "x는 10보다 커야 합니다!"

결과:

AssertionError: x는 10보다 커야 합니다!
  • assert 문에서 조건 x > 10False이므로 오류가 발생합니다.

3. 오류 해결책

  1. 조건문 확인:
    • assert에 사용된 조건이 적절한지 검토합니다.
    • 조건이 맞지 않다면 코드를 수정하거나, 조건을 만족하도록 입력 데이터를 변경합니다.
  2. 디버깅:
    • assert 메시지를 통해 어떤 값이 조건을 만족하지 못했는지 확인합니다.
  3. 테스트 코드 활용:
    • assert는 테스트 코드에서 주로 사용되므로, 프로덕션 코드에서는 예외 처리나 로깅으로 대체할 수 있습니다.

4. 오류 예제 코드 및 해결 코드

예제 코드
# AssertionError가 발생하는 코드
def calculate_discount(price):
    assert price > 0, "가격은 0보다 커야 합니다!"
    return price * 0.9

print(calculate_discount(-50))

결과:

AssertionError: 가격은 0보다 커야 합니다!

해결 코드
# 조건문 수정으로 AssertionError 해결
def calculate_discount(price):
    if price <= 0:
        raise ValueError("가격은 0보다 커야 합니다!")
    return price * 0.9

try:
    print(calculate_discount(-50))
except ValueError as e:
    print(f"오류 발생: {e}")

출력:

오류 발생: 가격은 0보다 커야 합니다!

요약:

  • AssertionError는 디버깅과 테스트에 유용합니다.
  • 발생 원인을 분석하고, 조건을 수정하거나 적절한 예외 처리로 대체하면 문제를 해결할 수 있습니다.
반응형

'Error(Exception) > ERROR-PYTHON' 카테고리의 다른 글

[python] FloatingPointError  (2) 2024.11.20
[python] EOFError  (0) 2024.11.19
[python] PythonFinalizationError  (0) 2024.11.18
[python] AttributeError  (0) 2024.11.18
[파이썬(python)] PermissionError: 파이썬에서 권한 오류  (0) 2023.02.10

댓글