기존 input()
방식은 속도가 느리다.
그런데 그냥 느린게 아니다.
하나의 긴 문자열을 입력 받는 경우에는 속도 차이가 거의 없다.
stdin
은 여러 라인의 문자열을 입력할 때 더 빠른 것이다.
입력 문자열이 길어도 몇 줄 안되면 input()
을 쓰자.
for line in sys.stdin:
print(int(line.split()[0]) + int(line.split()[1]))
위처럼 for
문의 iterator
로 sys.stdin
을 사용하면
^Z
가 입력되기 전까지 계속 입력을 반복한다.
그냥 입력을 한 줄만 받고 끝낸다.
여러줄을 입력받으려면 몇 줄을 입력받는지 알아야 한다.
단, 입력받은 문자열의 맨 뒤에 \n 가 붙어있기 때문에 rstrip('\n')을 사용해주자.
rstrip('abc')
는 문자열의 끝 부분에서
lstrip('abc')
는 문자열의 시작 부분에서부터
인자로 전달된 문자를 지워준다.
만약, 정해진 반복 횟수가 없이 계속 입력 받아야 하는 경우에는?
위에서 사용된
for line in sys.stdin:
print(int(line.split()[0]) + int(line.split()[1]))
이외에도
try:
a, b = map(int, input().split())
print(a+b)
except:
exit()
같은 방법도 쓸 수 있다.