1. input() 과 sys.stdin.readline() 차이
- input() 함수
- 파이썬에서 표준 입력을 받을 때 기본적으로 쓰는 함수
- 내부적으로 sys.stdin.readline()을 감싸고 있어서 속도가 조금 느림
- 입력 개수가 적을 때는 큰 차이 없음
- sys.stdin.readline()
- 표준 입력을 훨씬 더 빠르게 읽음
- 특히 반복문에서 입력을 많이 받을 때 성능 차이가 크게 남
- \n (개행문자, 줄바꿈 문자)까지 같이 읽음
Java를 사용하고 있다면, Scanner와 System.out.println 대신 BufferedReader와 BufferedWriter를 사용할 수 있다.
Python을 사용하고 있다면, input 대신 sys.stdin.readline을 사용할 수 있다.
2. 개행 문자 문제
import sys
s = sys.stdin.readline()
print(repr(s))
Hello!라고 입력하면 'Hello!\n' 줄바꿈이 포함해서 출력된다.
다른 내용이지만 repr()함수를 사용해서 s 출력하면 파이썬 코드에서의 문자열 표현(따옴표, \n 같은 이스케이프 문자까지 포함)을 출력한다.
관련 내용은 하단 링크에서 확인하자.
05 str() 함수와 repr() 함수
파이썬 내장 함수 중에는 str()과 repr()이라는, 어찌 보면 매우 비슷한 기능의 함수가 있다. str()과 repr()은 모두 객체를 문자열로 반환하는 함수이다. 하지만,…
wikidocs.net
3. 해결방법 : .strip()
s = " Hello! World!!!! " 라고 입력하면 어떻게 출력되는지 확인해보자.
- rstrip()오른쪽 끝 (right side)의 공백/개행을 제거
출력 : ' Hello! World!!!!'
import sys
s = sys.stdin.readline().rstrip()
print(repr(s))
- lstrip()
왼쪽 끝(left side)의 공백/개행을 제거
출력 : 'Hello! World!!!! ' - strip()
양쪽 끝(left + right)의 공백/개행을 제거
출력 : 'Hello! World!!!!'
📌 특정 문자 제거
import sys
s = sys.stdin.readline().rstrip().strip("x")
print(repr(s))
s = "xxHello! xxWorld!!!!xxxx" 라고 입력하면 'Hello! xxWorld!!!!' 출력된다.
입력받은 끝에 \n 개행을 제거해준 후 양쪽 끝에 "x"에 해당하는 문자를 제거해달라고 한 것이다. 가운데 x 문자는 제거되지 않음.
rstrip()도 안해주면 끝에 문자가 \n이 되므로 오른쪽 끝 "xxxx"는 제거되지 않음.
📌 "1 2 3 4 5" int 배열을 입력 받을 때
import sys
s = sys.stdin.readline().split()
print(repr(s))
s = "1 2 3 4 5" 입력 받으면 ['1', '2', '3', '4', '5'] 출력된다.
'AI > Python' 카테고리의 다른 글
[Python] datetime 모듈 (0) | 2025.09.25 |
---|---|
[Python] ascii code <-> string 변환 방법 (0) | 2025.09.10 |
[Python] 모듈 만들기 (0) | 2025.09.05 |
[Python] NumPy list와 Python list 차이 (0) | 2025.09.04 |
[Python] 지수 표기 방법 + 2진수, 8진수, 16진수 변환 (0) | 2025.09.03 |