21.12.2022 Views

python_para_desenvolvedores_2ed

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

354 Respostas dos exercícios VI

Respostas dos exercícios VI

1. Implementar um módulo com uma função tribonacci(n) que retorne uma

lista de n números de Tribonacci, aonde n é o parâmetro da função. Faça

testes da função caso o módulo seja executado como principal.

Solução:

# -*- coding: latin1 -*-

def tribonacci(n):

"""

Retorna uma lista com n elementos de Tribonacci.

>>> t = [1, 1, 2, 4, 7, 13, 24, 44, 81, 149, \

274, 504, 927, 1705, 3136, 5768, 10609, 19513, \

35890, 66012, 121415, 223317]

>>> t == tribonacci(22)

True

>>> tribonacci('22')

Traceback (most recent call last):

File "pyro_server.py", line 26, in <module>

print Dist().tribonacci('22')

File "pyro_server.py", line 14, in tribonacci

raise TypeError

TypeError

"""

if type(n) is not int:

raise TypeError

# Os 3 primeiros elementos da sequência

t = [1, 1, 2]

if n < 4:

return t[:n]

for i in range(3, n):

# Soma os 3 elementos finais

t.append(sum(t[-3:]))

return t

def _doctest():

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!