부호도 프린트하고 싶습니다.

조회수 444회
def count(string):
    string = string.lower()
    string = string.replace(' ','')
    dic ={}
    while string:
        key = string[0]
        if key.isalpha():
            value = string.count(key)
            dic[key]=value
        string = string.replace(key,'')
    print(dic, end='')
    return dic

a = input("문자열 입력 : ")
count(a)

제가 이런 식으로 코드를 만들었는데요, 질문이 생겨서요.

우선 첫번째는, 알파벳뿐만 아니라 느낌표나 콤마 같은 부호들도 카운트 되었으면 좋겠습니다. 그래서 제가 if key.isalpha():를 빼보려고도 해보았으나 그걸 건드리면 어떻게 수습해야 할 지 모르겠어서 건드리지를 못하고 있습니다.

두번째는 이 코드를 실행시키면 중괄호가 사용되어 dict 형식으로 출력되는데 저는 중괄호를 없애고 알파벳들을 하나씩 왼쪽 정렬하기를 원합니다. 그래서 print(dic, end='')도 사용해보았는데 안 되네요.

마지막 세번째는 while 대신 for을 사용하려면 어떻게 해야 하나요?

제가 완전 파이썬 초보라 오류가 있어도 잘 모릅니다. 많이들 도와주십시오.

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

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

(ಠ_ಠ)
(ಠ‿ಠ)