Python 3.5 阶乘

Python 3.5 Factorial

i = input("Enter number", )
for i in range(i):
    i= i *(i+1)
    print(i)

我正在尝试为用户使用上述代码输入的任何数字生成阶乘。在不使用 python 阶乘函数的情况下,如何使用上述代码实现此目的。我还可以如何使用阶乘函数来实现?

您正在修改 i 并迭代它。你能试试吗:

i = int(input("Enter number", ))
f = 1
for j in range(i):
    f = f * (j+1)

print(f)

你也可以用这种方式递归地做

def recur_factorial(n):
   """Function to return the factorial
   of a number using recursion"""
   if n == 1:
       return n
   else:
       return n*recur_factorial(n-1)

print recur_factorial(5)

您可以以整数形式从用户那里获取输入,然后传入阶乘函数

在使用递归时,您应该使用尾递归函数,例如

def factorial2(x, fac):
   if x == 1:
     return fac
   else:
     return factorial2(x-1, x*fac)

factorial2(value_here,1)

您可以使用简单的内置函数:

import math
math.factorial(value_here)

通过在 python 中导入 math 库来使用此函数 math.factorial(value)