밍꽁✨
코딩하는 감자
밍꽁✨
전체 방문자
오늘
어제
  • 분류 전체보기 (27)
    • python (16)
      • 파이썬 머신러닝 완벽가이드 (6)
      • 코딩테스트 (4)
      • 머신러닝&딥러닝 (2)
      • 파이썬 기초 (4)
    • Qgis (1)
    • Tableau (6)
    • 빅데이터 분석 기사 (0)
    • 금융데이터 뚝딱이기 (4)
      • 신협 대학생 인턴십 (1)
      • 기사 스크랩 (3)

블로그 메뉴

  • 홈
  • 태그

공지사항

인기 글

태그

  • bisect_left
  • NLP
  • Python기초
  • 인프런
  • 신협인턴십
  • Tableau
  • 역머니무브
  • Light GBM
  • 기사스크랩
  • 코딩테스트
  • 피처백터화
  • sys.stdin.readline()
  • 머신러닝
  • 파이썬
  • bisect_right
  • LGBM
  • 웰컴투태블로월드
  • 파이썬기초
  • 태블로
  • python

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
밍꽁✨

코딩하는 감자

python/코딩테스트

[python] 예외처리 / EOF / try,except

2022. 7. 18. 13:06
반응형

늘 조건문을 작성할 때는 if/else로 작성했기에 오류에 대한 예외처리를 해주는 try/except를 사용할 때는 흔하지 않았다.

하지만 백준 A+B-4 문제를 해결할 때는 try/except과정이 필수적으로 요구되었기에 다시금 들여다볼 수 있었다.

또한 input()과, sys.stdin.readline()의 구체적인 차이까지 다시 숙지했다.


1) input()과 sys.stdin.readline()

우선 input()과 달리 굳이 sys.stdin.readline()을 쓰는 이유는 많은 양의 데이터를 받아오는 상황에서 보다 효율을 높이기 위해 사용한다.

그래서 input() 한 단어로 간결하게 불러올 수 있는 것도 import sys: sys.stdin.readline()으로 받아오는 것이다.

하지만 한가지 알아야 하는 점은!

input()의 경우 빈 문자열이 입력될 때 EOFError를 발생시키지만

sys.stdin.readline()의 경우에는 빈 문자열이 입력된다고 하더라도 오류를 발생시키지 않고 그대로 빈 문자열을 출력시킨다는 차이가 있다.

 

import sys
## readline()
sys.stdin.readline()

## readlines()
sys.stdin.readlines()

부가적으로 readline()과 readlines()의 차이를 언급하자면

일반적으로 사용하는 readline()은 입력값을 한 번 받아온다.

하지만 readlines()는 그 파일에 들어있는 입력값을 모두 긁어오는 것이 차이라고 할 수 있다.


2) EOF?

EOF는 end of file의 약자로 문자열을 올바르게 입력받고 파일의 끝을 올바르게 판단하는 것을 의미한다.

즉 올바르지 않은 문자가 입력된 경우에 EOFError를 출력하게 된다.

이러한 오류가 나는 것을 예외처리 하기 위해서 try/except를 활용한다.


3) try/except를 활용한 문제풀이

문제

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

입력

입력은 여러 개의 테스트 케이스로 이루어져 있다.

각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)

출력

각 테스트 케이스마다 A+B를 출력한다. 

# input() 활용
while True:
    try:
        print(sum(map(int, input().split())))
    except:
        break
# sys.stdin.readline() 활용
import sys
while True:
    try:
        print(sum(map(int,sys.stdin.readline().split())))
    except:
        break

try의 경우 작성된 코드처럼 실행이 되지만,

except의 경우 오류가 발생했을 시 멈추게 한다.

반응형

'python > 코딩테스트' 카테고리의 다른 글

[python] 이진탐색 라이브러리 bisect  (0) 2022.08.19
[python] zip함수 정리  (0) 2022.07.13
[python] 재귀함수 파헤치기  (0) 2022.07.08
    'python/코딩테스트' 카테고리의 다른 글
    • [python] 이진탐색 라이브러리 bisect
    • [python] zip함수 정리
    • [python] 재귀함수 파헤치기
    밍꽁✨
    밍꽁✨
    감자의 데이터 분석 일지

    티스토리툴바