더북(TheBook)

이 책의 다른 부분을 읽다 보면 생성된 단어의 수를 보고 get_word()가 어떤 식으로 구현되었는지 추측할 수 있을 것입니다. 하지만 여기서는 프로그램을 실행할 때마다 생성되는 단어의 수와 내용이 다양하게 변할 수 있으며 그 범위도 다르다고 가정합니다.

간단한 수비학(numerology)을 응용하여 간단히 'a'1, 'b'2, 'z'26이라는 값을 지정하고 이를 각 단어에 사용된 문자에 대입한 후, 단어별로 대입한 값을 모두 더해 마법의 숫자(magic number)를 할당합니다. 이 변환 방법 자체는 그리 중요하지 않지만 ‘각각의 데이터에서 값을 계산한다’라는 개념은 자주 사용됩니다. 여기서는 다음과 같은 함수를 사용해 계산합니다.

단어를 수비학적인 마법 숫자로 변환하기

def word_number(word):
    magic = 0
    for letter in word:
        magic += 1 + ord(letter) - ord('a')
    return magic
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.