TEAMLAB-Lecture / python-101-for-data-science-by-pknu

1 stars 14 forks source link

과제 text_processing2 중 to_camel_case 관련 질문 #15

Closed sieuno3o closed 2 years ago

sieuno3o commented 2 years ago
def to_camel_case(underscore_str):
    camelcase = underscore_str.lower()
    camelcase1 = camelcase.title()
    camelcase2 = camelcase1[0].lower()
    camelcase1 = camelcase1[1:len(camelcase)]
    camelcase3 = str(camelcase2) + str(camelcase1)
    Clear_Text = ''.join(filter(str.isalnum, camelcase3))
    Clear_Text2 = ""

    for i in Clear_Text:
        if i == "_":
            Clear_Text2 += ""

    return Clear_Text

input값을 넣어 코드를 실행 해 보았을 때는 잘 작동하는데, 접근 방식이 잘못된 것인지 조건을 빼 먹은 것 인지 제출이 되지 않습니다 어느 부분이 잘못 된 것인지 잘 모르겠습니다.

jjungyujin commented 2 years ago

현재 코드로 underscore_str가 언더바로 시작하는 문자열을 테스트 해보시면 좋을 것 같습니다. underscore_str__Example_Case__와 같은 경우라면 camelcase2 = camelcase1[0].lower()에서 camelcase1[0]가 언더바(_)에 해당하므로 lower가 문자열에 적용되지 않습니다. 위와 같은 상황을 고려하여 코드를 수정해주세요 !

추가적으로, 조건 중에 언더바(_)로만 구성된 입력값을 받은 경우, 빈 문자열을 반환하는 코드가 빠진 것 같습니다.

sieuno3o commented 2 years ago
    camelcase = camel_case.lower()
    camelcase1 = camelcase.title()
    camelcase4 = camelcase1.replace("_", " ").strip()
    camelcase2 = camelcase4[0].lower()          
    camelcase1 = camelcase4[1:]
    camelcase3 = str(camelcase2) + str(camelcase1)
    Clear_Text = ''.join(filter(str.isalnum, camelcase3))
    Clear_Text2 = ""

    for i in Clear_Text:
        if i == "_":
            Clear_Text2 += ""

설명 해 주신 부분 고려하여 수정한 코드입니다. 여전히 제출이 되지 않아 다시 올립니다. 조건 중 언더바로만 구성된 입력값을 빈문자열로 반환하는 코드를 for문으로 작성한건데, 잘못 된 것인지 궁금합니다.

blissray commented 2 years ago

무슨 값을 리턴해주시나요?

blissray commented 2 years ago

alreadyCamel 은 작동하지 않는 거 같네요.

jjungyujin commented 2 years ago
camelcase4 = camelcase1.replace("_", " ").strip()

위 코드에서 언더바를 공백으로 대체하셨으니 split을 이용하여 문자열을 나누는 방식을 고려해 보시길 바랍니다 ! split으로 문자열 리스트를 받아오면 언더바로만 이루어진 문자열인지 확인하고 처리하는 코드도 쉽게 작성하실 수 있을 것 같네요.