작성
·
222
0
# 문자열 나누기
statements = "나는 열심히 파이썬 공부를 합니다."
result = ""
print(statements.split())
for a in statements:
result += a.strip()
print(result)
이렇게 했을 때는 여백없이 result 값이 나옵니다.
# 문자열 나누기
statements = "나는 열심히 파이썬 공부를 합니다."
result = ""
print(statements.split())
for a in statements:
result += a
print(result)
이렇게 했을 때는 statements와 동일한 값이 나와서
print('나는'+'열심히')를 실행해보았는데 나는열심히 라고 여백이 없이 나옵니다
2번째의 경우는 print('나는'+'열심히') 와 동일해서 여백이 없이 나와야 하는거 아닌가요?
답변 5
1
전자의 경우
result += a.strip()
에서 .strip() 함수를 통하여 여백을 감하며 더했기에 result가 statements에서 여백을 뺀 문자열이 되는 것이고
후자의 경우
result += a
이므로 여백이 있든 없든 문자를 모두 더하기에 result = statements가 되는 것 같습니다.
'나는'+'열심히'와는 다른 것이, statements는 어떻게 보면 '나는' + ' '(여백) + '열심히'이기에
후자의 경우 여백이 있이 나오는 것 같습니다.
0
0
[문자열.split()]은 원래 문자열의 양끝부터 ()내부의 문자가 연속으로 있는 곳까지 삭제한 문자열을 반환하는 함수에요. 즉 문자열 중간에 있는 값은 제거하지 않아요.
()내부에 아무것도 입력하지 않으면 양 끝 부터 공백(띄어쓰기, 줄바꿈, 탭)을 제거하는게 default구요.
따라서 문자열을 문자로 나눠서 해당문자가 공백이면 삭제하고 다시 문자열로 합치는 방식으로 공백을 제거할 수도 있지만,
차라리 [문자열.replace()]를 사용하시면 편해요.이 함수는 문자열에서 ()내부의 내용과 같은 문자(열)을 교체하는 함수로,
[문자열.replace(a,b)]로 쓰시면, 문자열에서 a를 찾아서 b로 교체합니다.
a에 ' ', b에 ''를 입력하시면 공백들을 삭제해줍니다.
0
print(statements.split())
for a in statements:
result += a
print(result)
에서 문자를 하나씩 더하는 코드는
for a in statements:
result += a
이건데, 여기에서는 여백을 없애는 코드가 없어요!
.split() 함수가 여백 없이 리스트에 저장을 하지만 문자열 만드는 데에는 사용되지 않았습니다
0