osh1795   2년 전

sys.stdin.readline() 관련해서 궁금하게 있어 질문합니다!

문제에서

Python을 사용하고 있다면, input 대신 sys.stdin.readline을 사용할 수 있다. 단, 이때는 맨 끝의 개행문자까지 같이 입력받기 때문에 문자열을 저장하고 싶을 경우 .rstrip()을 추가로 해 주는 것이 좋다.

이렇게 적혀있는데 " 단, 이때는 맨 끝의 개행문자까지 같이 입력받기 때문에 문자열을 저장하고 싶을 경우 .rstrip()을 추가로 해 주는 것이 좋다." 이 문장이 어떤 것을 뜻하는지 잘 모르겠습니다. 혹시 설명해주실 수 있나요??

그리고 모든 경우에 input()대신에 sys.stdin.readline()를 사용할 수 있는건가요??

dldyddlwl   2년 전

sys.stdin.readline()은 우리의 입력과 함께  \n까지 받아들입니다. ( 뉴라인,엔터 ), 그렇기 때문에 숫자는 괜찮습니다. (ex) int()를 통해 온전한 숫자만 얻을 수 있음 )

하지만 문자열의 경우엔 포함되어버리므로 문제가 되죠, 자 다음의 경우를 봅시다.

apple이라는 입력을 받습니다. 그리고 그걸 변수 str에 넣습니다.

str = input() 

str = sys.stdin.readline()

1) input의 경우

=> str = apple입니다.

2) sys.stdin.readline의 경우

=> str = apple\n 이 됩니다.

자 이것을, 아래와 같이 다뤄본다고 합시다.

================================================================================

따라서, 오른쪽의 \n을 없애주는 rstrip() 메소드가 필요한 것입니다! ( 양쪽은 strip() ) 

모든 경우에 사용하실 수 있습니다. 다만, 위와 같이 문자열을 다루게 되는 순간은 조심하셔야 합니다. 그리고 import sys도요!

osh1795   2년 전

감사합니다!!!

댓글을 작성하려면 로그인해야 합니다.