Created
May 19, 2011 01:53
-
-
Save tarsisazevedo/980011 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from unittest import TestCase | |
import math | |
class FatorialDeN(TestCase): | |
def test_soma_do_resultado_do_fatorial_de_10(self): | |
self.assertEquals(27, soma_do_fatorial_de_n(n=10)) | |
def test_soma_do_resultado_do_fatorial_de_100(self): | |
self.assertEquals(648, soma_do_fatorial_de_n(n=100)) | |
def soma_do_fatorial_de_n(n): | |
fatorial_n = math.factorial(n) | |
resultado = 0 | |
for numero in str(fatorial_n): | |
resultado += int(numero) | |
return resultado |
Ilegível???? Para mim uma list comprehension atualmente é mais legível que uma função de 5 linhas :-) Mas eu entendo o seu ponto de vista ;-)
É pra nós é super legivel mesmo! mas deixei assim pra qualquer um conseguir ler :D
##
Tarsis Azevedo
Sent with Sparrow
…On Wednesday, May 18, 2011 at 11:25 PM, rennerocha wrote:
Ilegível???? Para mim uma list comprehension atualmente é mais legível que uma função de 5 linhas :-) Mas eu entendo o seu ponto de vista ;-)
##
Reply to this email directly or view it on GitHub:
https://gist.github.com/980011
Sugiro a seguinte função pra calcular o fatorial:
def fatorial(n):
return reduce(lambda x, y: x*y, range(1,n+1))
Acho que ela vai propiciar uma performance bem maneira. Se combinar com o list comprehension que o @rennerocha sugeriu então, ficará ótimo!
Douglas,
A biblioteca padrão já possui a função math.factorial. Com certeza a performance dela já foi otimizada, então não vejo válido usar uma função lambda neste caso. Isso sim eu acho que reduz a legibilidade :-)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Obrigado renne, atualizei pro math.factorial. Boa contribuiçao.
Só nao troquei pra list comprehension porque fica meio ilegivel e nesse caso nao precisa de performance :D