만족은 하되 안주하지는 말자

기록해야 기억한다

프로그래밍/기억노트

[python] 입력받은 문자열 개행 지우기와 그 중요성

D36choi 2020. 8. 15. 16:19
728x90
from sys import stdin

str = stdin.readline()

print(str)
print("hello.")

readline() 을 통해 문자열을 입력받을 때의 문제점은,

Enter 즉, 개행 또한 문자열에 포함되게 입력된다는 것이다.

 

예를 들어

"hi" 를 입력하면 결과는 이렇다.

 

hi 가 print 되고, 한줄만큼 더 개행이 된다는걸 볼 수 있다.

print() 함수의 개행 외에, 개행이 1번 더 발생하게 되는 것이다.

 

 

이런 방식에서는 문자열에는 개행이 포함되기에 문자열 길이를 계산할때도 문제가 된다!

for문으로 문자열 속의 요소들을 모두 탐색한다고 할 때, 개행의 존재를 의식못하면 문제가 될 수 있다.

from sys import stdin

str = stdin.readline()

for i in range(len(str)):
    print(i,end='')

만약 내가 위 코드에 "four" 를 입력한다면, index는 0부터 3이 되어야 할 거라 생각하지만,

실제로는

01234 가 출력된다. 4는 개행인 것 이다.

 

해결법

str = stdin.readline().rstrip()

readline() 에 rstrip() 함수를 붙여주면 개행을 제거해 준다.

 

개행이 지워진 모습