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)
반응형
'Python > Python Basic' 카테고리의 다른 글
파이썬 에러 종류, 문법 에러 - 공부하는 도비 (0) | 2020.12.02 |
---|---|
파이썬 다양한 별 찍기 - 공부하는 도비 (0) | 2020.11.28 |
파이썬 구구단 출력, end 함수 사용 - 공부하는 도비 (0) | 2020.11.27 |
파이썬 이스케이프 문자, 이스케이프 문자 포함 출력 - 공부하는 도비 (0) | 2020.11.26 |
파이썬 Dictionary, get(), keys(), values(), items() 사용법, 파이썬 mapping type - 공부하는 도비 (0) | 2020.06.09 |