입출력

다히·2023년 1월 13일
0

Python

목록 보기
2/3

계속 추가 예정 ~~~

지이이인짜 만약에 입력 개수가 정해지지 않았다면

  • while 1 로 무한히 값을 입력 받기, 단 EOF까지
    ex) BOJ 10951번
while True: 
	try:
		A,B = map(int, input().split()) 
		print(A+B) 
	except: 
        break

input() vs sys.stdin.readline()

찾아 보게 된 원인 : BOJ 11718: 그대로 출력하기

  • 아무 생각 없이 쭉 써오던 sys.stdin.readline 썼는데 출력 초과
  • 혹시나 하고 input 으로 바꾸니까 바로 맞음

input()

  • 입력 후 엔터를 쳐도, 발생한 개행문자 \n을 제거한 뒤 문자열로 리턴
  • 더이상 받을 입력 없으면 EOFError
    EOFError : 파일의 끝을 의미, 데이터 소스로부터 더 이상 읽을 수 있는 데이터가 없음을 나타냄

stdin.readline()

sys 모듈

Python 인터프리터가 제공하는 변수와 함수 직접 제어할 수 있게 해주는 모듈

  • stdin 은 파이썬 인터프리터가 표준 입력에 사용하는 파일 객체
  • readline() 은 파일 객체 읽을 때, 한 번에 한 줄 읽기
    ⇒ 여러 줄 입력 시 한 줄 읽고 다음 줄 가리킴

차이점

inputsys.stdin.readline
인자로 prompt message 받을 수 있음
prompt message 받지 않음
\n 제거 후 리턴\n 포함해서 리턴
더 읽을 게 없을 때 EOFError 발생더 읽을 게 없을 때 빈 문자열 리턴

prompt message 출력 & \n 제거 연산을 수행하는 input()sys.stdin.readline() 보다 느림


리스트 출력

출력 시 print(*dfs_list) 와 같이 리스트 앞에 *을 붙여주면 리스트 자체가 아니라 리스트 내 원소가 각각 출력됨

list = [1, 2, 3, 4]
print(list)   # [1, 2, 3, 4]
print(*list)  # 1 2 3 4




Source
파이썬 공식 문서
[TIL] #5. sys.stdin.readline()

0개의 댓글