파이썬 대소문자 글자 붙이기,띄어쓰기 질문드립니다.
조회수 794회
파이썬 독학하다가 떠올라서 질문드립니다.
다음과 같이 영어이름을 띄어쓰기 없이 입력받았을 때
RyuHyunJin
다음과 같이
[Ryu,Hyun,Jin]
으로 출력하려고 합니다.
if
문 이용해서 소문자가 왔을 때는 왼쪽 글자와 붙이고, 대문자는 왼쪽을 띄면 될 거 같은데 대소문자 관련 함수 예를 찾기 힘들어 헤매고 있네요. 도움부탁드립니다
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
2 답변
-
맥빠지는 답: 정규표현식을 쓰시면 한큐에 끝나는 얘기입니다.
import re # 한 번 대문자가 나온 다음 대문자가 아닌 게 1개 이상 나올 때 매칭됨 regex = r"[A-Z][^A-Z]+" test_strs = ("RyuHyunJin", "Gwang-hyunKim") for s in test_strs : print(' '.join(re.findall(regex, s)))
좀더 성의있는 답:
물론
if
로 분기해서 "이 글자가 대문자냐 아니냐?"를 따지는 부분도 중요합니다. (참고로ord()
라는 함수가 있습니다.)
그런데 그보다 중요한 핵심 아이디어는, 주어진 문자열을 글자 단위로 순회해야 한다는 겁니다.파이썬에서는 이런 게 됩니다.
for letter in "RyuHyunJin" : print(letter) # 뭐가 출력될지 상상한 다음 실행해 보세요.
여기서부터는 직접 시도해 보세요.
-
아주아주 쉽게 만들어 보면...
대문자 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" 입력 = "HyunJinRyu" 출력 = "" for 글자 in 입력: if 글자 in 대문자: 출력 += " " 출력 += 글자 print(출력)
응용해서 더 잘 만들어 보세요.
댓글 입력