ffact.py 635 B

1234567891011121314151617181920212223242526272829303132
  1. # méthode 1
  2. def ffactfor(n):
  3. if n<= 0:
  4. return "bad",0
  5. else:
  6. ret = 1
  7. for i in range(1,n+1):
  8. ret *= i
  9. return "ok",ret
  10. # méthode 2 (récursion)
  11. def ffact(n):
  12. if n == 1:
  13. return 1
  14. else:
  15. return n*ffact(n-1)
  16. # méthode 3 (lambda function)
  17. fact = lambda x: 1 if x==1 else x*fact(x-1)
  18. # méthode 4 (utilisation de la bibliothèque standard)
  19. from functools import reduce
  20. from operator import mul
  21. def factr(n):
  22. return reduce(mul,range(1,n+1))
  23. #
  24. # On peut mettre les foctions dans une liste
  25. #
  26. ll=[ffact,ffactfor,fact,factr]
  27. for fonc in ll:
  28. print(fonc(10))