59
Computação 1

Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Embed Size (px)

Citation preview

Page 1: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Computação 1

Page 2: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Exercícios

Page 3: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Exercício

...

P = []

Q = []

for v in range(-200, 200, 50):

P.append( (v, -100) )

Q.append( (v, 100) )

for a, b in zip(P, Q):

turtle.up()

turtle.goto(a)

turtle.dot(10, 'red')

turtle.down()

turtle.goto(b)

turtle.dot(10, 'blue')

...

Page 4: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Pergunta

Page 5: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Solução

P = []

Q = []

for v in range(-200, 200, 50):

P.append( (v, -100) )

Q.append( (v, 100) )

for a in P:

for b in Q:

turtle.up()

turtle.goto(a)

turtle.dot(10, 'red')

turtle.down()

turtle.goto(b)

turtle.dot(10, 'blue')

coman

dos f

or

aninh

ados!

Page 6: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Exercício

import turtle

turtle.speed('fastest')

turtle.hideturtle()

turtle.up()

for i in range(10):

turtle.goto(20*i, 0)

turtle.dot(10)

turtle.done()

Page 7: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Solução

Page 8: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Exercício

import turtle

turtle.speed('fastest')

turtle.hideturtle()

turtle.up()

for i in range(10):

for j in range(10):

turtle.goto(20*i, 20*j)

turtle.dot(10)

turtle.done()

Page 9: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Solução

Page 10: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Exercício

import turtle

turtle.speed('fastest')

turtle.hideturtle()

turtle.up()

for i in range(10):

for j in range(i):

turtle.goto(20*i, 20*j)

turtle.dot(10)

turtle.done()

Page 11: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Solução

Page 12: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Exercício

import turtle

turtle.speed('fastest')

turtle.hideturtle()

turtle.up()

for i in range(20):

for j in range(20-i):

turtle.goto(20*i, 20*j)

turtle.dot(10)

turtle.done()

Page 13: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Solução

Page 14: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Exercício

Page 15: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Solução

import turtle

turtle.speed('fastest')

turtle.hideturtle()

turtle.up()

for i in range(20):

for j in range(i, 20-i):

turtle.goto(20*i, 20*j)

turtle.dot(10)

turtle.done()

Page 16: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Exercício

Page 17: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Solução

import turtle

turtle.speed('fastest')

turtle.hideturtle()

turtle.up()

for j in range(1, 11):

turtle.goto(0, 200-20*j)

s = '7 x ' + str(j) + ' = ' + str(7*j)

turtle.write(s)

turtle.done()

Page 18: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Exercício

Page 19: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Solução

import turtle

turtle.speed('fastest')

turtle.hideturtle()

turtle.up()

for i in range(1, 11):

for j in range(1, 11):

turtle.goto(70*i-500, 200-20*j)

s = str(i) + ' x ' + str(j) + ' = ' + str(i*j)

turtle.write(s)

turtle.done()

Page 20: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da
Page 21: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Exercício

>>> valores_unicos([20, 10, 20, 20, 8, 10, 10, 8, 8, 8])

[20, 10, 8]

>>> valores_unicos([0, 1, 9, 0, 0, 4, 2, 1, 4])

[0, 1, 9, 4, 2]

Page 22: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Solução

def valores_unicos(L):

'''Retorna uma lista contendo os elementos

de L, mas sem repeticoes.'''

res = []

for x in L:

if x not in res:

res.append(x)

return res

Page 23: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Exercícios

Page 24: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Conjuntos

Page 25: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Conjuntos

>>> A = {3, 0, 8, 9, 3}

>>> A

set([8, 9, 3, 0])

>>> B = {9, 8, 8, 8, 8, 8, 8, 8, 8, 10}

>>> B

set([8, 9, 10])

>>> C = set([3, 1, 0, 3, 1, 0, 3, 1, 0, 3, 1, 0])

>>> C

set([0, 1, 3])

>>> D = set() # conjunto vazio

>>> D

set([])Aten

ção!

{} não é u

m conju

nto vazio

!

Page 26: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Operações com conjuntos

Page 27: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Conjuntos - adição de elementos

>>> A = {3, 0, 8, 9, 3}

>>> A

set([8, 9, 3, 0])

>>> A.add(10) # adiciona 10.

>>> A.add(8) # não adiciona, pois A já tem 8.

>>> A

set([8, 9, 10, 3, 0])

Page 28: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Conjuntos - remoção de elementos

>>> B = {29, 12, 53, 52, 20, 11}

>>> B.remove(29)

>>> B.remove(53)

>>> B

set([11, 12, 52, 20])

>>> B.remove(53)

KeyError: 53

>>> B.discard(20)

>>> B.discard(53) # nao da erro!

>>> B

set([11, 12, 52])

Page 29: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Conjuntos - remoção de elementos

>>> C = {10, 30, 20, 42}

>>> C.pop()

42

>>> C.pop()

20

>>> C

set([10, 30])

>>> C.pop()

10

>>> C.pop()

30

>>> C.pop()

KeyError: 'pop from an empty set'

Page 30: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Conjuntos - união

>>> A = {3, 0, 8, 9}

>>> B = {9, 8, 5, 4, 2, 1}

>>> C = A.union(B)

>>> C

set([0, 1, 2, 3, 4, 5, 8, 9])

>>> C = A|B

>>> C

set([0, 1, 2, 3, 4, 5, 8, 9])

Page 31: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Conjuntos - interseção

>>> A = {3, 0, 8, 9}

>>> B = {9, 8, 5, 4, 2, 1}

>>> C = A.intersection(B)

>>> C

set([8, 9])

>>> C = A&B

>>> C

set([8, 9])

Page 32: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Conjuntos - diferença

>>> A = {3, 0, 8, 9}

>>> B = {9, 8, 5, 4, 2, 1}

>>> A.difference(B)

set([0, 3])

>>> A-B

set([0, 3])

>>> B-A

set([1, 2, 4, 5])

Page 33: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Conjuntos - outras operações

>>> A = {3, 0, 8, 9}

>>> B = {9, 8, 5, 4, 2, 1}

>>> 9 in A

True

>>> 10 in B

False

>>> 20 not in A

True

>>> 20 not in B

True

>>> A.clear()

>>> A

set([])

Page 34: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Conjuntos - outras operações

>>> A = {3, 0, 8, 9}

>>> B = {9, 8, 5, 4, 2, 1}

>>> C = {9, 0}

>>> C.issubset(A)

True

>>> C.issubset(B)

False

>>> C <= A # equivalente a C.issubset(A)

True

>>> C < B

False

Page 35: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Conjuntos - outras operações

>>> A = {3, 0, 8, 9}

>>> B = {9, 8, 5, 4, 2, 1}

>>> C = {9, 0}

>>> A.issuperset(C)

True

>>> B.issuperset(C)

False

>>> A >= C # equivalente a A.issuperset(C)

True

>>> B > C

False

Page 36: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Conjuntos - outras operações

...

A = {3, 8, 7, 4, 3, 8, 7}

for x in A:

turtle.write(x, font=('Arial', 20, 'normal'))

turtle.forward(50)

...

Page 37: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Exercício

Page 38: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Exercício

def pontos_retangulo(x0, y0, x1, y1):

'''Retorna um conjunto de vertices no

retangulo de vertices x0, y0, x1, y1'''

res = set()

for x in range(x0, x1+1):

for y in range(y0, y1+1):

res.add( (x, y) )

return res

Page 39: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Exercício

def desenha_pontos(P, cor, s):

'''Desenha os pontos de P, usando a cor

e escala s especificados.'''

turtle.up()

for x, y in P:

turtle.goto(s*x, s*y)

turtle.dot(10, cor)

Page 40: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Exercício

...

turtle.speed('fastest')

turtle.hideturtle()

turtle.tracer(0)

A = pontos_retangulo(-20, -10, 10, 5)

B = pontos_retangulo(4, -20, 20, 10)

desenha_pontos(A, 'red', 10)

desenha_pontos(B, 'blue', 10)

desenha_pontos(A&B, 'black', 10)

turtle.update()

turtle.done()

Page 41: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da
Page 42: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Agenda telefônica

agenda = [('Pedin', '948253747'), ('Zezin', '988673737'), ...

... ('Zefinha', '998822331'), ...]

def telefone(agenda, nome):

'''Encontra o telefone de uma pessoa na agenda.'''

for pessoa, telefone in agenda:

if pessoa == nome:

return telefoneQUANTO TRABALHO...

Page 43: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Dicionário

Page 44: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Dicionários

{chave1: valor1, chave2: valor2,...}

Page 45: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Dicionários

>>> A = {5:2, 4:'casa', 'parque':'dinossauro'}

>>> A

{'parque': 'dinossauro', 4: 'casa', 5: 2}

>>> A[5]

2

>>> A[4]

'casa'

>>> A['parque']

'dinossauro'

>>> A[0]

KeyError: 0

Page 46: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Dicionários

>>> A = {} # dicionario vazio!

>>> A

>>> A[4]

KeyError: 4

>>> A[4] = 'limonada'

>>> A[2000] = 'suco de caju'

>>> A

{2000: 'suco de caju', 4: 'limonada'}

>>> A[4.2] = 100

>>> A['trololo'] = 'yeyeyeyeye'

>>> A{2000: 'suco de caju', 'trololo': 'yeyeyeyeye', 4.2: 100, 4: 'limonada'}

>>> A[4] = 'agua com gas'

>>> A{2000: 'suco de caju', 'trololo': 'yeyeyeyeye', 4.2: 100, 4: 'agua com gas'}

Page 47: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Dicionários

>>> A = {}

>>> A[5] = [4, 5, 6]

>>> L = [3, 1, 2]

>>> Q = (3, 1, 2)

>>> A[L] = 10

TypeError: unhashable type: 'list'

>>> A[Q] = 10 # OK

>>> A

{5: [4, 5, 6], (3, 1, 2): 10}

Page 48: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Agenda telefônica

agenda = {'Pedin':'948253747', 'Zezin':'988673737', ...

... 'Zefinha':'998822331', ...}

telefone = agenda['Zezin']

Page 49: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Operações com dicionários

Page 50: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Dicionários - operações

>>> A = {2:'macaco', 5:'cachaca', 'nome':'mariquinha'}

>>> A.keys()

[2, 5, 'nome']

>>> A.values()

['macaco', 'cachaca', 'mariquinha']

>>> A.items()

[(2, 'macaco'), (5, 'cachaca'), ('nome', 'mariquinha')]

>>> del A['nome']

>>> A

{2: 'macaco', 5: 'cachaca'}

>>> len(A)

2

Page 51: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Dicionários - operações

>>> A = {2:'macaco', 5:'cachaca', 'nome':'mariquinha'}

>>> 2 in A

True

>>> 5 in A

True

>>> 'macaco' in A

False

>>> A.clear()

>>> A

{}

Page 52: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Dicionários

Dicionários são iteráveis

A = {(100, 20):'trave', (30, 40):'bola', (-100, -50):'cone'}

for p in A:

turtle.goto(p)

turtle.write(A[p])

Page 53: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Dicionários

Podemos iterar também fazendo:

A = {(100, 20):'trave', (30, 40):'bola', (-100, -50):'cone'}

for p in A.keys():

turtle.goto(p)

turtle.write(A[p])

Page 54: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Dicionários

Podemos iterar também fazendo:

A = {(100, 20):'trave', (30, 40):'bola', (-100, -50):'cone'}

for p, v in A.items():

turtle.goto(p)

turtle.write(v)

Page 55: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Exercício

>>> conta_letras('glu glu ie ie')

{' ': 3, 'e': 2, 'g': 2, 'i': 2, 'l': 2, 'u': 2}

Page 56: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Solução 1

def conta_letras(frase):

'''Conta quantas vezes cada letra da frase aparece.'''

D = {}

for x in frase:

if x not in D:

D[x] = frase.count(x)

return D

Page 57: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Solução 2

def conta_letras(frase):

'''Conta quantas vezes cada letra da frase aparece.'''

D = {}

for x in frase:

if x not in D:

D[x] = 1

else:

D[x] += 1

return D

Page 58: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da

Solução 3

def conta_letras(frase):

'''Conta quantas vezes cada letra da frase aparece.'''

letras = set(frase)

D = {}

for x in letras:

D[x] = frase.count(x)

return D

Page 59: Computação 1 - dcc.ufrj.brlcarvalho/comp1/slides/Aula9T.pdf · for j in range(10): turtle.goto(20*i, 20*j) turtle.dot(10) turtle.done() ... '''Conta quantas vezes cada letra da