728x90 프로그래밍언어388 [파이썬][Error] 077. AssertionError - assert False AssertionError: assert False 오류는 assert 문이 실행되었을 때 조건이 False여서 강제로 예외가 발생한 경우입니다. assert는 테스트 또는 디버깅 목적으로 조건이 반드시 참이어야 한다는 의도를 명시할 때 사용하며, 조건이 거짓이면 AssertionError를 발생시킵니다.이 오류는 코드 검증 단계나 유닛 테스트, 사전 조건 확인 등에서 의도적으로 발생시키는 경우가 많으며, 예외 메시지를 통해 어떤 조건이 실패했는지 확인할 수 있습니다.● 오류 발생 예시assert False, "이 코드에 도달해서는 안 됩니다."조건이 False이므로 AssertionError가 발생하며, 메시지도 함께 출력됩니다.AssertionError: 이 코드에 도달해서는 안 됩니다.● 해결 방법.. 2025. 5. 30. [파이썬][Error] 076. RecursionError - stack overflow in math function RecursionError: stack overflow in math function 오류는 수학 함수를 재귀적으로 잘못 호출하여 파이썬의 호출 스택(stack)이 넘칠 때 발생합니다. 특히 잘못 정의된 수학 함수나 종료 조건이 없는 수학적 재귀 함수에서 자주 발생합니다.파이썬은 함수 호출마다 스택 프레임을 추가하며, 기본적으로 약 1000개의 호출 깊이를 초과하면 RecursionError를 발생시킵니다. 재귀가 수학 연산 중 반복되거나 무한 루프에 빠지면 스택 오버플로우가 발생할 수 있습니다.● 오류 발생 예시def sqrt_recursive(x): return sqrt_recursive(x / 2)sqrt_recursive(16)이 함수는 종료 조건 없이 자신을 계속 호출하므로 스택이 가득 차.. 2025. 5. 30. [파이썬][Error] 075. RuntimeError - cyclic dependency detected RuntimeError: cyclic dependency detected 오류는 파이썬에서 모듈 간의 순환 참조(circular import)나 객체 간 의존 구조에서 서로가 서로를 참조하여 끊임없이 반복되는 구조가 감지될 때 발생합니다. 이는 보통 잘못 설계된 모듈 간 import, 클래스 간 의존, 또는 캐시 시스템 등에서 발생합니다.예를 들어 A 모듈이 B를 import하고, B 모듈이 다시 A를 import하는 상황에서 함수 또는 클래스가 서로를 호출하면, 파이썬은 순환 의존 구조로 간주하여 RuntimeError를 발생시킬 수 있습니다.● 오류 발생 예시# a.pyfrom b import func_bdef func_a(): func_b()# b.pyfrom a import func_adef.. 2025. 5. 30. [파이썬][Error] 074. RecursionError - infinite recursion with no base case RecursionError: infinite recursion with no base case 오류는 종료 조건 없이 함수가 계속 재귀 호출되면서 파이썬의 최대 재귀 깊이를 초과할 때 발생합니다. 기술적으로는 RecursionError: maximum recursion depth exceeded와 같은 메시지로 나타나지만, 근본 원인은 베이스 케이스(종료 조건)의 부재입니다.재귀 함수는 반드시 종료 조건이 있어야 하고, 그 조건에 도달할 수 있도록 매개변수가 점진적으로 변경되어야 합니다. 종료 조건이 없거나 무한 반복을 유발하는 구조는 스택 오버플로우로 이어질 수 있습니다.● 오류 발생 예시def count_up(n): print(n) count_up(n + 1)count_up(1)위 함수는 .. 2025. 5. 30. [파이썬][Error] 073. RuntimeError - cannot run the event loop in a non-main thread RuntimeError: cannot run the event loop in a non-main thread 오류는 비동기 코드(asyncio)를 메인 스레드가 아닌 서브 스레드에서 실행하려고 할 때 발생합니다. asyncio.run() 또는 loop.run_until_complete()와 같은 함수는 기본적으로 메인 스레드에서만 안전하게 실행되도록 설계되어 있습니다.이 오류는 GUI 애플리케이션(PyQt, Tkinter 등), Jupyter Notebook, 또는 백그라운드에서 동작하는 스레드 내에서 비동기 루프를 실행하려 할 때 자주 발생합니다. 스레드 구조를 명확히 구분하거나, 스레드 안전한 방식으로 이벤트 루프를 다뤄야 합니다.● 오류 발생 예시import asyncio, threadingdef .. 2025. 5. 30. [파이썬][Error] 072. RuntimeError - dictionary changed size during iteration RuntimeError: dictionary changed size during iteration 오류는 파이썬에서 딕셔너리를 반복(iterate)하면서 동시에 항목을 추가하거나 삭제할 때 발생합니다. 반복 중에 딕셔너리의 구조가 변경되면 내부 상태가 불안정해져 런타임 오류가 발생하게 됩니다.이 오류는 for 루프를 통해 딕셔너리를 순회하면서 del, pop(), update() 등을 사용할 때 자주 발생합니다. 파이썬은 딕셔너리를 안전하게 순회할 수 있도록, 순회 중 구조 변경을 허용하지 않습니다.● 오류 발생 예시data = {"a": 1, "b": 2, "c": 3}for key in data: del data[key]딕셔너리를 순회하면서 동시에 항목을 삭제하면 RuntimeError가 발생합.. 2025. 5. 30. 이전 1 ··· 5 6 7 8 9 10 11 ··· 65 다음 728x90