파이썬 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'
라는 명령을 봐도 당황하지 않고 저 문자열 끝에 문자열을 붙여야겠다고 이해하고 일을 합니다.
댓글 입력