티스토리 뷰

반응형

 

개발사항

  • 파일명은 사용자로부터 입력 받는다.
  • 사용자 입력값이 없으면 기본 파일(clown.txt) 를 오픈한다.
  • 딕셔너리를 이용하여 오픈한 파일에 존재하는 단어와 단어 각각의 빈도수를 저장한다.
  • 가장 빈도수가 높은 단어와 빈도수를 출력한다.

 

# 파일명을 사용자로부터 입력받는다
# 입력값이 없다면 기본파일(clown.txt)을 오픈한다.
fname = input("Enter file name : ")
if len(fname) < 1 :
    fname = "clown.txt"
hand = open(fname)

di = dict()
for line in hand :
    line = line.rstrip()
    wds = line.split()

    # 각 단어를 key 로 갖는 딕셔너리를 생성한다.
    # 딕셔너리에 단어(key)가 존재하면 매핑되는 value 값을 리턴하고
    # 리턴된 value 값에 1을 더하여 카운팅한다.
    # 만약 단어(key)가 존재하지 않으면 기본값인 0 이 리턴되고
    # 리턴된 0 에 1을 더하여 카운팅 한다.
    for w in wds :
        di[w] = di.get(w, 0) + 1

        # 아래의 코드 네 줄이 위의 한 줄과 동일한 의미이다.
        """
        if w in di :
            di[w] = di[w] + 1
        else :
            di[w] = 1
        """

# 빈도수가 가장 높은 단어를 찾는 부분
# di.items() 를 이용하여 key, value 쌍을 얻어서
# k 와 v 변수가 각각 대입하고
# v 가 가장 큰 (빈도수가 가장 높은) 단어를 theword 에 대입한다.
largest = -1
theword = None
for k, v in di.items() :
    print(k, v)

    if v > largest :
        largest = v
        theword = k

print("Done", theword, largest)

 

** clown.txt 파일 내용 **

the clown ran after the car and the car ran into the tent and the tent fell down on the clown and the car

 

프로그램 수행결과 : the 라는 단어가 7회로 가장 빈도수가 높음

END

반응형
댓글
공지사항