정답코드는 다음과 같다.
while True:
try:
A, B = map(int, input().split())
print(A+B)
except:
break
정답 비율이 30 프로대로 낮은 걸 볼 수 있는데, 보통 처음 제출 시 코드가 아래와 같기 때문이다.
while True:
A, B = map(int, input().split())
print(A+B)
전혀 문제가 없어 보이지만, 이 문제는 우리가 "예외처리"를 할 수 있냐 없냐를 물어보는 문제이기 때문에 예외처리가 되어있지 않은 위 코드는 정답이 될 수 없다.
오답코드는 입력이 주어지지 않거나 정수가 아닌 값이 입력되면 오류가 발생할 수 있다. 그리고 while True를 사용하였기 때문에 무한루프가 지속된다.
정답코드는 위와 같은 예외들을 처리하기 위해 try를 사용하여 먼저 예외가 발생할 수 있는 코드를 작성한다.
try:
A, B = map(int, input().split())
print(A+B)
그 다음은 except를 이용하여 예외가 발생했을 때 처리하는 코드를 작성한다.
except:
break
try와 except의 일반적인 사용 방법은 다음과 같다:
try:
x = int(input("숫자를 입력하세요: "))
result = 10 / x
print("결과:", result)
except ZeroDivisionError as e:
print("0으로 나눌 수 없습니다.", e)
except ValueError as e:
print("올바른 숫자를 입력하세요.", e)
다중으로 예외를 처리하는 방법도 존재한다:
try:
# 예외가 발생할 수 있는 코드
except (예외1, 예외2) as 예외변수:
# 예외가 발생했을 때 처리하는 코드
'Algorithm > baekjoon' 카테고리의 다른 글
[백준] 2480번 주사위 세개 파이썬 (python) (0) | 2024.03.10 |
---|---|
[백준] 2884번 알람 시계 파이썬 (python) (0) | 2024.03.10 |
[백준] 2525번 오븐 시계 파이썬 (python) (2) | 2024.03.10 |
[백준] 11718 그대로 출력하기 파이썬 (python) (0) | 2024.03.09 |
[백준] 2738번 행렬 덧셈 파이썬 (python) (0) | 2024.03.09 |
댓글