파이썬 for문을 이용해서 문자열 대소문자 바꾸기

조회수 920회

파이썬에서 for 문을 이용하여 문자열의 대소문자를 변경하려면 아래의 코드로 해야한다고 나오는데 왜 new_text = str() 로 지정을 하고 해야 하는지 모르겠어요!

text = input('영어 대소문자로 이루어진 문장을 입력하세요\n')
new_text = str()

for c in text:
  if c.islower():
    new_text += c.upper()
  else:
    new_text += c.lower()

print('\nfor 문과 if문을 사용하여 대소문자 변경\n'+ new_text)
text = input('영어 대소문자로 이루어진 문장을 입력하세요\n')

for c in text:
  if c.islower():
    text += c.upper()
  else:
    text += c.lower()

print('\nfor 문과 if문을 사용하여 대소문자 변경\n'+ text)

왜 아래코드처럼 하면 안나오는 건가요?

1 답변

  • 안 나오지는 않고 뭔가 나오긴 하는데요?

    영어 대소문자로 이루어진 문장을 입력하세요
    what the heck
    
    for 문과 if문을 사용하여 대소문자 변경
    what the heckWHAT THE HECK
    

    뭐 좀만 생각해보면 당연한 겁니다.
    text += 'W'text 뒤에 'W'를 붙이는 거거든요.
    그러니까 text = 'what the heck'이었을 경우 text += 'W'가 실행되면 what the heckW가 나오겠죠.
    이런 식으로 하나하나 붙어서 결국 what the heckWHAT THE HECK이 된 거구요.

    이렇게 뭔가 나왔는데 그걸 안나온다고 하시면 안 돼요.
    "원하는/기대했던 게 안나온다" 하면 또 모를까요.


    좀만 더 생각해 봅시다.
    사실 우리가 여기서 하고 있는 일은, 사용자가 입력한 text를 이용해서, 새로운 텍스트를 얻는 일입니다.
    그 새로운 텍스트에 new_text 같은 이름을 붙일 수 있겠죠.
    앗 그런데 이게 숫자인지 문자인지 파이썬 입장에서는 알 바가 아니군요! 그래서 new_text = str()이라고 알려주는 겁니다.
    그래야 파이썬이 new_text += 'W'라는 명령을 봐도 당황하지 않고 저 문자열 끝에 문자열을 붙여야겠다고 이해하고 일을 합니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)