Sequência Fibonacci ! (Iniciante) --- Será que tem um jeito mais simples ? --- Lista sobre repetição

2,783 views
Skip to first unread message

Luiz Felipe

unread,
Oct 29, 2015, 1:07:43 PM10/29/15
to Python Brasil
Olá pythonistas ! 

Gostaria de saber com vocês se o código que fiz para sequência Fibonacci está muito complicado.

Queria ver se poderiam me auxiliar numa possível solução mais elegante :)

Abraços 

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>...

# -*- coding: utf-8 -*-
'''
A série de Fibonacci é formada pela seqüência 1,1,2,3,5,8,13,21,34,55,...
Faça um programa capaz de gerar a série até o n−ésimo termo.
'''
#Fn = F(n-1) + F(n-2)
while True:
n = int (input("\nDigite o termo que queira descobrir na sequência Fibonacci: "))
i = 0
a = 0
b = 1
if n > 0:
print ("\n%dº termo: %d"%(b,b))
i += 1
a = b
while i < n:
print ("\n%dº termo: %d"%(i+1,b))
b = a + b
i+=1
a = b - a
quest = raw_input("\nDeseja continuar? Digite Y p/ sim e N p/ não >>>> ")
if quest == 'Y':
print ("\nVamos começar de novo")
else:
break
else:
print ("\nVocẽ não pode digitar zero ou numero negativo")
quest = int(input ("\nDigite 0 para sair e 1 para continuar ... "))
if quest == 1:
print ("\nVamos começar de novo")
else:
break

Luiz Felipe

unread,
Oct 29, 2015, 1:10:35 PM10/29/15
to Python Brasil
Estou começando ! 

Aprendendo as estruturas de repetições ainda.
...

Welton Vaz

unread,
Oct 29, 2015, 7:47:03 PM10/29/15
to python...@googlegroups.com
No site do python tem um script muito bom da A série de Fibonacci:

Python 3: Fibonacci series up to n
>>> def fib(n):
>>>     a, b = 0, 1
>>>     while a < n:
>>>         print(a, end=' ')
>>>         a, b = b, a+b
>>>     print()
>>> fib(1000)
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 



Enviado com MailTrack

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.



--

Welton Vaz de Souza
TWITTER: http://twitter.com/Weltonvaz
BLOG: http://ghandybh.blogspot.com/
FACEBOOK: https://www.facebook.com/weltonv
Cel: (31)9327-0823
***********************************************************

 °v° NÃO USE DROGAS,
/(_)\ USE GNU/LINUX
 ^ ^

Régis Silva

unread,
Oct 30, 2015, 6:57:12 AM10/30/15
to Python Brasil
Welton, sua solução já é avançada para quem está começando.
Luiz Felipe, como vc faria no papel? Pense nisso dai vc faz um código mais simples (simples, não significa curto, significa entendível),
depois vc passa para algo mais pythônico, minimalista e short code.

Bons estudos.


Regis da Silva
Web Developer 

Aboutme Linkedin github

Marcos Thomaz

unread,
Oct 30, 2015, 1:57:24 PM10/30/15
to python...@googlegroups.com
Depois pode passar para algoritmos recursivos...

fib = lambda x: 1 if x <=2 else fib(x-1)+fib(x-2)

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.



--


Marcos Thomaz da Silva
Analista de Tecnologia da Informação

Luiz Felipe

unread,
Oct 31, 2015, 6:42:01 PM10/31/15
to Python Brasil
Valeu pela força de todos ! 

Espero aprender a usar as funções e usar recursiva.

Foi mais ou menos o que eu pensei no papel e coloquei.



On Thursday, 29 October 2015 15:07:43 UTC-2, Luiz Felipe wrote:
...
Reply all
Reply to author
Forward
0 new messages