본문 바로가기
알고리즘/파이썬 PS

입출력

by 유시은 2020. 9. 29.

입력

파이썬 기본 입출력은 input 함수와 print 함수로 할 수 있다.

 

s = input()
print("Hello, ")
print(s)

 

input 함수는 느리다.

sys 모듈의 stdin.readline을 쓰자.

 

하지만 입력을 받을 때마다 sys.stdin.readline() 을 쓰기는 불편하니까 input 을 sys.stdin.readline() 으로 정의하고 쓰자.

 

import sys
input = sys.stdin.readline

s = input()
print(s)

 

여러 방법을 시도해 보았는데 위와 같이 하는 게 제일 빨랐다.

 

입력은 문자열을 반환하므로 다른 게 필요하면 명시적으로 형 변환을 해서 사용해야 한다.

 

자료형( ) 으로 감싸면 된다.

 

 

정수 3에 입력받은 str "6"을 int 6으로 변환하고 더하여 출력

 

여러 값을 공백으로 구분하여 주는 문제가 많은데, 다음과 같이 입력받으면 편하다.

 

import sys
input = sys.stdin.readline

a, b = map(int, input().split())

 

입력량이 매우 많으면 조금 느리지만 아직 이것 때문에 TLE가 난 적은 없다.

 

뭐 하는 코드인지는 나중에 문자열 가공 관련하여 글을 따로 쓸 예정이다..

 

 

 

주의해야 할 점은, sys.stdin.readline은 불필요한 공백과 개행 문자까지도 입력받는다.

 

int 변환, split() 을 해서 사용할 것이라면 아무 문제없지만, 문자열 자체가 필요한 경우 rstrip() 함수를 쓸 수 있다.

 

입력된 문자열 오른쪽에 딸려오는 공백과 개행을 지우고 반환해준다.

 

이것도 자주 호출해서 좋을 게 없으니 필요한 경우에만 사용하자.

 

첫 째 print와 둘 째 print의 차이점을 쉽게 볼 수 있다.

 

출력

파이썬 print 함수는 데이터를 적당히 양념하여 sys.stdin.writeline 을 호출한다.

 

자세한 건 documentation 을 보자.

 

 

데이터로는 문자열, 정수, 객체 등 아무거나 다 넣어도 된다.

 

진짜 아무거나 넣어도 된다.

 

여러 데이터를 공백으로 구분하여 나열하려면 콤마로 구분하면 된다.

 

값 찍어가면서 디버깅할 때 정말 편하다.

 

 

지금까지 출력 예시를 유심히 봤다면 디폴트로 개행까지 출력함을 알 수 있다.

 

print 함수에는 sep, end, file, flush 인자를 줄 수 있는데 sep 과 end 말고는 아직 써보지 못했다.

 

sep과 end의 기본값은 sep=" ", end="\n" 과 같다.

 

이 정도만 할 수 있으면 충분하다.

 

아직 언급하지 않았지만 리스트나 튜플 앞에 *를 붙이면,

 

PS에서 자주 나오는 공백 | 개행문자 구분 출력을 간단하게 할 수 있다.

 

 

이제 귀여운 고양이를 출력할 수 있다.

 

10171 고양이

 

10171번: 고양이

아래 예제와 같이 고양이를 출력하시오.

www.acmicpc.net

 

 

'알고리즘 > 파이썬 PS' 카테고리의 다른 글

입출력  (2) 2020.09.29
파이썬으로 알고리즘 문제 해결하기  (0) 2020.09.28

댓글2