Exercício 01: Crie uma função ContaPalavras que receba como entrada o nome de um arquivo de texto e retorne a frequência de cada palavra contida nele.


In [ ]:
# Contador de palavras
import codecs
from collections import defaultdict

def ContaPalavras(texto):
    
for palavra, valor in ContaPalavras('exemplo.txt').iteritems():
    print (palavra, valor)

Exercício 02: Crie uma função ConverteData() que recebe uma string no formato DIA-MES-ANO e retorne uma string no formato DIA-MES_NUMERO-ANO. Exemplo:

'01-MAI-2000' => '01-05-2000'.

Você pode separar a string em uma lista de strings da seguinte maneira:

data = '01-MAI-2000'
lista = data.split('-')
print lista # ['01','MAI','2000']

E pode juntar novamente usando join:

lista = ['01','05', '2000']
data = '-'.join(lista)
print data # '01-05-2000'

In [4]:
# converter data no formato 01-MAI-2000 em 01-05-2000
def ConverteData(data):

print (ConverteData('01-MAI-2000'))


01-05-2000

Exercício 03: Crie um dicionário chamado Dados que tenha como chave um número de 2 até 12 e o valor seja uma lista contendo todas as combinações dos valores de dois dados que resulta nessa chave.


In [6]:
# crie um dicionário em que a chave é um número de 2 a 12 
# e o valor é uma lista de combinações de dois dados que resulta na chave
Dados =...


for chave, valor in Dados.iteritems():
    print (chave, valor)


2 [(1, 1)]
3 [(1, 2), (2, 1)]
4 [(1, 3), (2, 2), (3, 1)]
5 [(1, 4), (2, 3), (3, 2), (4, 1)]
6 [(1, 5), (2, 4), (3, 3), (4, 2), (5, 1)]
7 [(1, 6), (2, 5), (3, 4), (4, 3), (5, 2), (6, 1)]
8 [(2, 6), (3, 5), (4, 4), (5, 3), (6, 2)]
9 [(3, 6), (4, 5), (5, 4), (6, 3)]
10 [(4, 6), (5, 5), (6, 4)]
11 [(5, 6), (6, 5)]
12 [(6, 6)]

Exercício 04: Crie um dicionário onde as chaves são palavras em português e os valores sua tradução para o inglês. Use todas as palavras do texto do exercício 01.

Crie uma função Traduz() que recebe o nome do arquivo texto como parâmetro e retorna uma string com a tradução.


In [12]:
# crie um pequeno dicionário de inglês para português e use para traduzir frases simples
import codecs

def Traduz(texto):
    

print (Traduz('exemplo.txt'))


 this example will be used to learn the minimum about readings from files texts
 and as the text can be used in one structure from dictionary
 if the result be correct have the occurrence of word the in four times

Exercício 05: A Cifra de César é uma forma simples de criptografar um texto. O procedimento é simples:

  • dado um número $n$
  • crie um mapa de substituição em que cada letra será substituida pela n-ésima letra após ela no alfabeto. Ex.:
n = 1
A -> B
B -> C
...
n = 2
A -> C
B -> D
...

A Codificação é feita substituindo cada letra da frase pelo correspondente do mapa.

Para Decodificar uma frase, basta criar um mapa utilizando $-n$ ao invés de $n$.

Crie uma função ConstroiDic() que recebe um valor n como entrada e cria um mapa de substituição. Utilize a constante string.ascii_letters para obter todas as letras do alfabeto.

Note que o mapa é cíclico, ou seja, para n=1, a letra Z tem que ser substituida pela letra A. Isso pode ser feito utilizando o operador '%'.

Crie uma função Codifica() que recebe como parâmetros uma string contendo uma frase e um valor para n, essa função deve construir o dicionário e retornar a frase codificada.

Para Decodificar o texto, basta chamar a função Codifica() pasando -n como parâmetro.


In [42]:
# cifra de César
import string

def ConstroiDic(n):

    
def Codifica(frase, n):
    
    

l = Codifica('Vou tirar dez na proxima prova', 5)
print (l)
print (Codifica(l,-5))


atz ynwfw ijE sf uwtCnrf uwtAf
Vou tirar dez na proxima prova

Exercício 06: Faça uma função que leia a tabela periódica de um arquivo (você construirá esse arquivo) e armazene em um dicionário.


In [6]:
# tabela periodica

Exercício 07: Assista o vídeo abaixo e crie uma lista com os personagens da letra da música.

Em seguida, utilizando dois laços for percorra essa lista e escreva a letra da música.


In [2]:
from IPython.display import YouTubeVideo
YouTubeVideo('BZzNBNoae-Y', 640,480)


Out[2]:

In [7]:
# velha a fiar

Exercício 08: Faça uma função que converta um número decimal para romano. Para isso construa um dicionário em que as chaves são os números decimais e os valores o equivalente em romano.

O algoritmo funciona da seguinte forma:

  • Para cada valor decimal do dicionário, do maior para o menor
  • Enquanto eu puder subtrair esse valor de x
  • subtraio o valor de x e concateno o equivalente romano em uma string

Exercício 09: Faça uma função que converta um número romano para decimal. Para isso construa um dicionário com o inverso do que foi feito no ex. anterior. O algoritmo fica assim:

  • Para i de 0 até o tamanho da string do número romano
  • cria a string formada pela letra i e letra i+1 caso i seja menor que o tamanho da string - 1
  • cria a string formada pela letra i-1 e i, caso i seja maior que 0
  • se a primeira string estiver no dicionário, some o valor em x
  • senão se a segunda string NÃO estiver no dicionário, some o valor da letra i em x

In [41]:
# dec - romano - dec
def DecRoman(x):

    
    
    
def RomanDec(r):

    
    
r = DecRoman(1345)
x = RomanDec(r)
print (r,x)


MCCCXLV 1345