본문 바로가기
컴퓨터/Python

[파이썬] 파이썬 에러 ZeroDivisionError: integer division or modulo by zero , ZeroDivisionError: division by zero , try-except 구문 사용법

by HanJoohyun 2017. 11. 12.
반응형


 

 

안녕하세요 한주현입니다.

 

오늘은 파이썬 스크립트 실행 중 만날 수 있는 오류인,

 

ZeroDivisionError: integer division or modulo by zero

ZeroDivisionError: division by zero

 

try-except 사용방법


에 대하여 알아보겠습니다.


 

 문제 상황

 

ZeroDivisionError: integer division or modulo by zero
ZeroDivisionError: division by zero


두 오류는 각각 python2 와 python3 에서 어떠한 수를 0으로 나눌 때 발생하는 오류입니다.


예를 들자면 다음과 같지요.


1
2
3
4
5
6
7
8
9
10
11
12
13
>>> # python2
>>> 2/0
Traceback (most recent call last):
  File "<stdin>", line 1in <module>
ZeroDivisionError: integer division or modulo by zero
>>> 
 
>>> # python3
>>> 3/0
Traceback (most recent call last):
  File "<stdin>", line 1in <module>
ZeroDivisionError: division by zero
>>> 
cs


오류가 나면 문제점이 코드가 끝나게 되는 상황이 되어버린다는 점 입니다.


예를 들어, 다음과 같이 코드를 작성하였다고 해봅시다.


리스트에서 하나씩 for로 빼내어 어떠한 수를 나눈다고 해 봅시다.


1
2
3
4
lst = [1,3,5,0,2]
 
for i in lst:
    print(10 / i)
cs


아래와 같이 실행되다가 4번째 항목인 0에서 오류가 나게 되고,

5번째 항목인 2는 나눠질 기회가 없이 코드가 멈추게 됩니다.


1
2
3
4
5
6
7
10.0
3.3333333333333335
2.0
Traceback (most recent call last):
  File "zero.py", line 4in <module>
    print(10 / i)
ZeroDivisionError: division by zero
cs


0으로 나누게 될 경우는 오류가 난다고 하지만,

이를 넘어가고 계속 코드가 진행되게는 할 수 없을까요?

 

 



 해결 방법

 

ZeroDivisionError: integer division or modulo by zero

ZeroDivisionError: division by zero


해결방법은 try-except 문을 사용하시면 됩니다.


try-except 의 형태

try-except 문은 다음과 같이 try안에 먼저 수행하고 싶은 문장을 넣고,


그것이 오류가 났을 때 할 문장을 except에 넣으시면 됩니다.


1
2
3
4
try:
    <statement>
except type_of_error:
    <statement>

cs


특히 except에는 오류의 종류를 적어서 특정 오류만 집어서 수행하게 할 수도 있습니다.


그러면 코드를 수정해서 0으로 나눌때는 ZeroDivision이라고 출력하고 지나가게 해봅시다.


1
2
3
4
5
6
7
lst = [1,3,5,0,2]
 
for i in lst:
    try:
        print(10 / i)
    except ZeroDivisionError:
        print("ZeroDivision")
cs


실행,


1
2
3
4
5
10.0
3.3333333333333335
2.0
ZeroDivision
5.0
cs


0이 나와도 오류메시지가 나오지 않고 코드가 실행되었습니다 ㅎㅎ



오늘은 파이썬 ZeroDivisionError 와 해결 방법인 try-except 사용 방법을 알아보았습니다.


여러분들께 도움이 되셨으면 좋겠네요

그럼 다음 시간에 만나요!

 

 

 


반응형

댓글