Python/Python Basic

파이썬 입력함수 input(), sys.stdin.readline(), rstrip(), lstrip(), strip() 사용 - 공부하는 도비

DOVISH WISDOM 2020. 11. 28. 22:12  
728x90
반응형

오늘은 파이썬의 다양한 입력 방법에 대해 알아보겠습니다.

파이썬에서 가장 자주 쓰는 입력 함수는 input()이 있죠?

하지만 입력 값을 수 백, 수 천개 받을 때는, 입출력 속도를 위해서 sys.stdin 함수를 사용해주는 것이 더 좋습니다.

파이썬 알고리즘 문제를 풀때, 시간초과 에러가 나오는 경우 해결 방법이기도 해요.

 

1. input()

input()은 기본적으로 문자열을 입력받는 것으로 처리됩니다. 

코드를 보면, 변수 a 의 type이 str인 것을 확인할 수 있습니다.

input()이 문자열로 저장되는 걸 잘 이용하면, 입력되는 값을 list로 변형시켜서 값을 쪼개는 것도 가능합니다.!

 

정수형이나 실수형을 입력할때는 int(), float()을 앞에 써주면 되겠죠?

 

 

2. sys.stdin.readline()

이 입력함수는 한 줄에 여러 입력 값을 받을 수 있습니다. 

우선 이 입력 함수를 사용하기 위해서는 import sys 를 사용해야합니다.

여기서 몇가지 옵션? 등을 설명해보려고 해요.

기본적으로 readline()은 개행문자(줄 바꿈 문자)를 포함하고 있어요. 그래서 문자열 마지막에 개행문자가 포함되어 출력되는데 이러한 공백 없이 출력할 수 있게 하는 함수가 있습니다.

 

* rstrip() 

: 오른쪽 공백을 삭제

 

* lstrip()

: 왼쪽 공백을 삭제

 

* strip()

: 왼쪽, 오른쪽 공백을 삭제

 

코드를 통해서 저 세가지 함수를 비교해볼게요. 

입력은 동일하게 ∨∨123∨456∨ 로 하고 결과를 볼게요.
(∨는 띄어쓰기, 콘솔창에서는 스페이스바에 해당하겠네요.)

입력 받은 문자열을 list로 바꿔서 보니 이해가 쉽죠?

import sys

a  = sys.stdin.readline()
a = list(a)
print("1. readline : ", a)
print()

b = sys.stdin.readline().rstrip()
b = list(b)
print("2. rstrip : ", b)
print()

c = sys.stdin.readline().lstrip()
c = list(c)
print("3. lstrip : ", c)
print()

d = sys.stdin.readline().strip()
d = list(d)
print("4. strip : ", d)
print()

 

이외에도 map(), sys.stdin.readline() 을 사용하여 한 줄로 여러 변수에 값을 입력 받을 수도 있습니다.

문자열도 아래 코드 처럼 입력 받을 수 있습니다. 

import sys 

# 공백을 기준으로 데이터가 나뉘어서 들어감

p, q, r = map(str, sys.stdin.readline().split())

print("p : ", p)
print("q : ", q)
print("r : ", r)

출력 코드

 

반응형