python 텍스트 파일에서 모든 알파벳 개수세기

텍스트 파일의 모든 알파벳의 개수 세기

fname=input('Enter a filename:')

fhand=open(fname)

char=list(fhand)

for w in ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']:    
    print(char.count(w))

텍스트 파일 내용 : hello, Jenny

다 0으로 나오는데 뭐가 잘못된 건가요?

1답변

  • 단순히 파일에서 알파벳을 새는 방법은 더 쉬운 방법이 있습니다만 질문에 충실해서 답변을 답니다.

    char=list(fhand)
    

    에서 char 는 라인들이 저장됩니다.

    예를들어 파일의 내용이 아래와 같을때

    abcd
    efgh
    ijkl
    

    char 은 ['abcd\n', 'efgh\n', 'ijkl\n'] 이 됩니다.

    당연히 abcd 와 알파벳을 비교하므로 맞는 경우가 없게 됩니다.

    char[0].count('a') # 1개
    

    와 같이 해야 합니다.

    학생인 것 같은데...프로그래밍에서 문자열 이라는 단위는 없는 겁니다.

    문자의 선형집합(끝은 널\0)이 문자열입니다.

    자 그리고...

    a~z까지 list를 만드는 방법은 일일이 적기 보다는

    import string
    [c for c in string.ascii_lowercase]
    

    혹은

    [chr(i) for i in range(ord('a'), ord('z') + 1)]
    

    와 같이 만들어 줄 수 있습니다.

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.