2012-01-27 3 views
-2

그래서 Google의 파이썬 클래스를 시작했으며이 시점까지 연습 문제가별로 없었습니다. 그러나, 나는 이것으로 고투하고있다. 나는 엄청나게 googled하고 두 가지 결과를 발견했고, 어떤 제안도 듣고 싶다. ..Google 클래스 : Python - Mimic.py Exercise

" 파일에있는 모든 단어를 얻기 위해 공백에) (간단한 분할을 수행 명령 줄에 지정된 파일에 읽기 보다는하여 파일 라인을 읽어 여기

는 운동이다 라인, 그것은 하나의 거대한 문자열로 에게 그것을 읽고 한 번 분할하는 것이 더 쉽습니다.

즉시에 그 단어를 따라 모든 단어의 목록에 파일 에 나타나는 각 단어를 매핑하는 "모방"DICT 빌드 파일 단어 목록은 임의의 순서 일 수 있으며을 포함해야합니다.210 복제본. 예를 들어, 키 "and"는 목록을 가질 수 있습니다. [ "then", "best", "then", "after"...] 목록에 "and"뒤에 오는 단어가 모두 입니다. 빈 문자열은 앞에 오는 것이고 파일의 첫 번째 단어라고합니다.

모방 문자를 사용하면 원본을 모방 한 임의의 문자 을 내보내는 것이 매우 쉽습니다. 한 단어를 인쇄 한 다음 어떤 단어가 다음에 올지 모를 을보고 무작위로 하나를 골라 다음 작품으로 . 빈 문자열을 첫 번째 단어로 사용하여 프라이밍합니다. 우리가 dict에없는 단어로 붙어 있다면, 은 빈 문자열로 돌아가서 움직이는 것을 유지합니다.

참고 : 표준 파이썬 모듈 '임의'에는 비어 있지 않은 목록에서 임의의 요소 을 선택하는 random.choice (목록) 메서드가 포함되어 있습니다.

재미있게하려면 입력 할 때 프로그램 자체를 먹이십시오. 열 주위 바꿈에 넣어 그것을 얻는 작업을 할 수 있기 때문에 출력이 좋아 보이는 "여기

가 제공 한 코드입니다.! 모든 도움에 감사드립니다

import random 
import sys 


def mimic_dict(filename): 
"""Returns mimic dict mapping each word to list of words which follow it.""" 

def print_mimic(mimic_dict, word): 
"""Given mimic dict and start word, prints 200 random words.""" 

def main(): 
    if len(sys.argv) != 2: 
     print 'usage: ./mimic.py file-to-read' 
    sys.exit(1) 

    dict = mimic_dict(sys.argv[1]) 
    print_mimic(dict, '') 


if __name__ == '__main__': 
    main() 

다음은

+1

어느 부분에 도움이 필요합니까? 시도해 봤어? –

+0

print_mimic 함수에 문제가 있습니다. 텍스트를 가져 와서 문자열 목록으로 분리해도 문제가 없습니다. 그러나 거기에서 어디로 가야할 지 잘 모르겠습니다. – mcbaby

답변

1

print mimic function. 당신이이 시점에 이르도록 도움이 필요했는지에 대한 약간의 의견이 분분했다 : random.choice 내장의 사용에주의해라. 꽤 멋지다.

import random 

def print_mimic(mimic_dict, word):  

    l = [] 
    for i in range(200): 
     word = random.choice(mimic_dict.get(word, '')) 
     l.append(word) 

    print(' '.join(l))    
+0

되돌아 보면 배치하지 말아야합니다. 함수의'import '내부 ... 편집 중. –