forked from henriquebastos/pacote-desafios-pythonicos
-
Notifications
You must be signed in to change notification settings - Fork 0
/
14_mimic.py
executable file
·70 lines (47 loc) · 2 KB
/
14_mimic.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
"""
14. mimic
Neste desafio você vai fazer um gerador de lero-lero.
É um programa que lê um arquivo, armazena a relação entre as palavras e
então gera um novo texto respeitando essas relações para imitar um
escritor de verdade.
Para isso você precisa:
A. Abrir o arquivo especificado via linha de comando.
B. Ler o conteúdo e separar as palavras obtendo uma lista de palavras.
C. Criar um dicionário de "imitação".
Nesse dicionário a chave será uma palavra e o valor será uma lista
contendo as palavras que aparecem no texto após a palavra usada na chave.
Por exemplo, suponha um arquivo com o conteúdo: A B C B A
O dicionário de imitação deve considerar que:
* a chave A contém uma lista com a palavra B
* a chave B contém uma lista com as palavras C e A
* a chave C contém uma lista com a palavra B
Além disso precisamos considerar que:
* a chave '' contém uma lista com a primeira palavra do arquivo
* a última palavra do arquivo contém uma lista com a palavra ''.
Com o dicionario imitador é bastante simples emitir aleatoriamente texto
que imita o original. Imprima uma palavra, depois veja quais palavras podem
vir a seguir e pegue uma aleatoriamente como a proxima palavra do texto.
Use a string vazia como a primeira palavra do texto para preparar as coisas.
Nota: o módulo padrão do python 'random' conta com o random.choice(list),
método que escolhe um elemento aleatório de uma lista não vazia.
"""
import random
import sys
def mimic_dict(filename):
"""Retorna o dicionario imitador mapeando cada palavra para a lista de
palavras subsequentes."""
# +++ SUA SOLUÇÃO +++
return
def print_mimic(mimic_dict, word):
"""Dado o dicionario imitador e a palavra inicial, imprime texto de 200 palavras."""
# +++ SUA SOLUÇÃO +++
return
# Chama mimic_dict() e print_mimic()
def main():
if len(sys.argv) != 2:
print('Utilização: ./14_mimic.py file-to-read')
sys.exit(1)
dict = mimic_dict(sys.argv[1])
print_mimic(dict, '')
if __name__ == '__main__':
main()