python에서 문법을 사용해 에러가 발생했을 때 처리해주는 문법이 try / except이다.
숫자를 입력하여 계산을 수행하는 class 문법을 만들고 숫자를 입력하면 아래와 같은 출력 값을 얻을 수 있다.
try, except를 통해 발생할 수 있는 오류를 처리 할 수 있다.
class Calc:
def __init__(self):
self.num1 = int(input("숫자 : "))
self.num2 = int(input("숫자 : "))
def plus(self):
return self.num1 + self.num2
def minus(self):
return self.num1 - self.num2
def multiple(self):
return self.num1 * self.num2
def divide(self):
return self.num1 / self.num2
calc = Calc()
print(calc.plus())
print(calc.minus())
print(calc.multiple())
print(calc.divide())
# 숫자 : 20
# 숫자 : 10
# 30
# 10
# 200
# 2.0
하지만 숫자 0을 입력하거나 문자를 입력하면 에러가 발생한다.
# 0을 입력 했을 때
ZeroDivisionError: division by zero
# 문자를 입력 했을 때
ValueError: invalid literal for int() with base 10: 'a'
이럴 때 try/except를 사용하면 에러가 발생했을 때 문제를 처리할 수 있다.
0을 입력 했을 때 생기는 에러에는 ZeroDivisionError를 사용하여 0으로 나눌 수 없다는 print를 해주고
문자를 입력 했을 때 생기는 에러에는 ValueError를 사용하여 숫자만 입력 가능하다는 print를 해준다.
그 밖에 통틀어 except만 사용하여 에러 발생시 수행문을 만들어 줄 수도 있고
다양한 에러를 처리할 수 있다.
class Calc:
def __init__(self):
self.num1 = int(input("숫자 : "))
self.num2 = int(input("숫자 : "))
def plus(self):
return self.num1 + self.num2
def minus(self):
return self.num1 - self.num2
def multiple(self):
return self.num1 * self.num2
def divide(self):
return self.num1 / self.num2
try:
calc = Calc()
print(calc.plus())
print(calc.minus())
print(calc.multiple())
print(calc.divide())
except ZeroDivisionError:
print("0으로 나눌 수 없습니다")
except ValueError:
print("숫자만 입력 가능합니다")
'코딩공부 > Python' 카테고리의 다른 글
[python]class, method, instance, init, self / TIL_220913 (0) | 2022.09.13 |
---|---|
[python]로또 번호 생성 코드 작성하기 / TIL_220908 (0) | 2022.09.08 |
[python]숫자야구 게임 구현해보기 (허접함주의) / TIL_220907 (0) | 2022.09.07 |
[python]함수 def / TIL_220906 (0) | 2022.09.06 |
[python]'int' object is not iterable / TIL_220905 (0) | 2022.09.05 |
댓글