728x90
◯문제 링크◯
◯코드 미리보기◯
while True:
try :
a, b = map(int,input().split( ))
if type(a) == int and type(b) == int:
print("%d"%(a+b))
except :
break
◯설명◯
while True:
무한루프를 만들어준다. try-except를 활용하기 위해서이다.
try :
a, b = map(int,input().split( ))
if type(a) == int and type(b) == int:
print("%d"%(a+b))
예외가 발생하지 않을 때 작동하는 코드이다.
이전문제에서 굳이 list를 사용하지 않아도 된다는 사실을 깨달아서, 2개의 변수를 선언해준 뒤에 map함수와 split을 이용해서 입력과 동시에 int형으로 변환을 해주었다. map이 이터레이터라서 하나의 변수의 여러 개의 값이 저장될 수 있기 때문에 이런 형식으로 사용이 가능하다고 하는데, 아직 공부가 부족해서 무슨 의미인지 정확히 이해는 안된다. 일단은 그냥 이렇게 사용할 수 있다는 것만 배웠다.
except :
break
되게 간단한 식이지만, 이번 문제의 핵심이다. 예외가 생길 경우 함수를 멈춰주는 코드다.
이 문제를 풀면서 조건이 주어지지 않아가지고 해결을 하지 못하고 있었는데, 검색을 해보니 예외처리에 대해서 배우게 되었다. 이 사실을 알게되니 런타임 에러가 발생하는 이유도 유추할 수가 있었는데, 아마 입력값으로 int를 제외한 다른 자료형이 주어져서 오류가 발생해서 런타임 에러가 발생한 것 같다.
◯배운 것◯
⩥예외처리를 하는 방법을 알게 되었다. 앞서 말했던 try-except이다. 예외상황에 어떻게 작동해야할지 저장해줄 수 있다.
break를 넣어서 런타임 에러가 뜨는게 아니라 코드가 끝나게 하거나, 조건에 as를 적어서 어떤 오류인지 표시하는 방법도 있다.
728x90
'python > 문제' 카테고리의 다른 글
[백준/1193]분수찾기 (0) | 2021.01.27 |
---|---|
[백준/2292]벌집 (0) | 2021.01.26 |
[백준/1712]손익분기점 (0) | 2021.01.23 |
[백준/10952]A+B-5 (0) | 2021.01.05 |
[백준/2577]숫자의개수 (0) | 2021.01.01 |