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() 함수를 붙여주면 개행을 제거해 준다.
'프로그래밍 > 기억노트' 카테고리의 다른 글
[python] 주어진 수가 소수인지 판별하기 (0) | 2020.08.26 |
---|---|
[python] sort 를 할 때 2개의 key 를 서로 다른 순서로 정렬하기 (2 key 2 order) (0) | 2020.08.25 |
[python] 개행/줄바꿈 없이 print 하기 (0) | 2020.08.11 |
[python] 파이썬 공백 구분해 정수 입력 받기 (0) | 2020.08.07 |
[python] 파이썬 list 2차원 초기화 (0) | 2020.08.07 |