728x90
반응형
파이썬에서는 코드에 문제가 있는 경우 에러를 출력합니다.
해당 에러에 대해 탐색하는 과정을 디버깅이라고 말합니다.
한 번 에러가 나는 코드를 만들어 보겠습니다.
def division(a,b):
return a / b
def custom_function(x):
return division(x, x-1)
division은 a와 b를 인자로 받아서, a에서 b를 나눈 값을 반환합니다.
custom_function은 x를 인자로 받아서, x에서 x-1을 나눈 값을 반환합니다.
만약 여기서 x = 1 을 대입하게 된다면 어떻게 될까요?
수학적으로 분모는 0이 되면 안되기 때문에, 아마 오류가 나야 할 것입니다.
custom_function(1)
---------------------------------------------------------------------------
ZeroDivisionError Traceback (most recent call last)
Cell In[10], line 1
----> 1 custom_function(1)
Cell In[9], line 5, in custom_function(x=1)
4 def custom_function(x):
----> 5 return division(x, x-1)
x = 1
x-1 = 0
Cell In[9], line 2, in division(a=1, b=0)
1 def division(a,b):
----> 2 return a / b
a = 1
b = 0
ZeroDivisionError: division by zero
Python에서 실행한 결과 ZeroDivisionError가 발생합니다.
에러 문구의 상세한 정도를 %xmode로 조절할 수 있습니다.
Plain은 더 간결한 에러 문구 출력을, Verbose는 더 상세한 에러 문구 출력을 반환합니다.
%xmode Plain
custom_function(1)
Traceback (most recent call last):
Cell In[3], line 3
custom_function(1)
Cell In[1], line 5 in custom_function
return division(x, x-1)
Cell In[1], line 2 in division
return a / b
ZeroDivisionError: division by zero
%xmode Verbose
custom_function(1)
---------------------------------------------------------------------------
ZeroDivisionError Traceback (most recent call last)
Cell In[4], line 3
1 get_ipython().run_line_magic('xmode', 'Verbose')
----> 3 custom_function(1)
Cell In[1], line 5, in custom_function(x=1)
4 def custom_function(x):
----> 5 return division(x, x-1)
x = 1
x-1 = 0
Cell In[1], line 2, in division(a=1, b=0)
1 def division(a,b):
----> 2 return a / b
a = 1
b = 0
ZeroDivisionError: division by zero
또한 %debug 명령어를 사용하면 Debugging을 실행시킬 수 있습니다.
%debug
custom_function(1)
반응형
'데이터 다루기 > Python' 카테고리의 다른 글
[Python] Array 만들기 (0) | 2023.03.16 |
---|---|
[Python] Numpy란? (0) | 2023.03.15 |
[Python] 코드 실행 시간 측정 (0) | 2023.02.15 |
[Python] 기초 문법 (9) List 관련 함수 (0) | 2020.11.06 |
[Python] 기초 문법 (8) File processing (0) | 2020.11.06 |