인프런 커뮤니티 질문&답변

박태준님의 프로필 이미지

작성한 질문수

파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)

문제를 풀며 가장 자연스럽게 익숙해지는 파이썬 기본: 문자열,리스트,조건문 활용2

Exercise 22. 문자열 다루기 (strip) 문의

24.04.07 21:39 작성

·

113

0

code = ' 000660\n abc'

print (code)

print (code.strip(' \n'))

 

결과

 000660
            abc
000660
            abc

로 \n 이 제거가 되지 않고 줄 바꿈 되었습니다.

잘못 코딩한 부분이 어디인지 문의 드립니다.

답변 1

0

잔재미코딩 DaveLee님의 프로필 이미지

2024. 04. 08. 10:24

안녕하세요 답변 도우미입니다.

 

코드를 실행했을 때의 결과를 설명해 드리겠습니다. Python의 strip() 메서드는 문자열의 양쪽 끝에서 지정된 문자(들)를 제거합니다. 하지만, 이 메서드는 문자열의 가운데에 있는 문자나 문자열의 양쪽이 아닌 부분에 있는 문자를 제거하지 않습니다.

여기서 주의할 점은, strip(' \n')은 문자열의 시작과 끝에서만 공백과 개행문자('\n')를 제거한다는 것입니다. 따라서, 문자열 중간에 있는 개행문자나 공백은 그대로 유지됩니다.

주어진 코드에서 code 변수는 '\n'을 포함하여 다음과 같이 정의됩니다:

```python

code = ' 000660\n abc'

```

print(code)를 호출하면, 문자열이 정의된 대로 출력됩니다. 이 때문에 다음과 같이 보입니다:

```

000660

abc

```

print(code.strip(' \n'))을 호출하면, 문자열의 시작과 끝에서만 공백과 개행문자가 제거됩니다. 여기서 strip()은 문자열의 시작에 있는 공백과 문자열의 끝에 있는 개행문자만을 제거합니다. 그러나 문자열 중간의 개행문자('\n')는 제거되지 않습니다. 그 결과 다음과 같이 출력됩니다:

```

000660

abc

```

중간에 있는 개행문자('\n')를 제거하고 싶다면, replace() 메서드를 사용하여 모든 개행문자를 제거할 수 있습니다. 예를 들어:

```python

print(code.replace('\n', ''))

```

이 코드는 개행문자를 빈 문자열로 대체하여, 문자열 전체에서 모든 개행문자를 제거합니다.

결론적으로, strip() 메서드가 예상대로 동작하지 않는 것은 아니며, strip()은 문자열의 시작과 끝에서만 지정된 문자를 제거하기 때문에 문자열 중간에 있는 개행문자는 영향을 받지 않습니다.

 

감사합니다.