# méthode 1 def ffactfor(n): if n<= 0: return "bad",0 else: ret = 1 for i in range(1,n+1): ret *= i return "ok",ret # méthode 2 (récursion) def ffact(n): if n == 1: return 1 else: return n*ffact(n-1) # méthode 3 (lambda function) fact = lambda x: 1 if x==1 else x*fact(x-1) # méthode 4 (utilisation de la bibliothèque standard) from functools import reduce from operator import mul def factr(n): return reduce(mul,range(1,n+1)) # # On peut mettre les foctions dans une liste # ll=[ffact,ffactfor,fact,factr] for fonc in ll: print(fonc(10))