Google Classes:Python - Mimic.py练习

时间:2012-01-27 23:26:22

标签: python

所以我开始谷歌的python课程,到目前为止,任何练习都没有那么大的困难。但是,我正在努力解决这个问题。我已经谷歌搜索了两个结果,并希望听到任何建议。

这是练习:

“读入命令行中指定的文件。 在空格上执行简单的split()以获取文件中的所有单词。 它不是逐行读取文件,而是更容易阅读 将它分成一个巨大的字符串并将其拆分一次。

构建一个“模仿”字典,用于映射文件中出现的每个单词 到文件中紧跟该单词后面的所有单词的列表。 单词列表可以是任何顺序,应包括 重复。因此,例如键“和”可能具有列表 [“then”,“best”,“then”,“after”,...]列表 所有在文本中“和”之后出现的单词。 我们会说空字符串是之前的字符串 文件中的第一个单词。

使用模仿词典,随机发射相当容易 模仿原文的文字。打印一个单词,然后看 接下来可能会出现什么词,随机选择一个 接下来的工作。 使用空字符串作为第一个词来填充东西。 如果我们遇到一个不在字典中的单词, 回到空字符串以保持活动。

注意:标准的python模块'random'包含一个 random.choice(list)方法,用于选择随机元素 来自非空列表。

为了好玩,请将您的程序作为输入提供给自己。 可以努力让它在70左右的线路中放置 列,所以输出看起来更好。“

以下是提供的代码:

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 :(得分:1)

这是打印模拟功能。 你的评论中有点不清楚你是否需要任何帮助来达到这一点: 请注意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))