Python中的factorial()

在数据分析和其他涉及python的数学分析中,经常需要找到数字的阶乘。总是通过将所有从1开始的整数乘以给定数来找到正整数的阶乘。可以通过以下三种方法来找到它。

使用For循环

我们可以使用for循环遍历数字1直到指定的数字,并在每个步骤中保持乘法。在下面的程序中,我们要求用户输入数字并将输入转换为整数,然后在循环中使用它。这样,我们确保在计算中得到正整数。

示例

n = input("Enter a number: ")
factorial = 1
if int(n) >= 1:
for i in range (1,int(n)+1):
   factorial = factorial * i
print("Factorail of ",n , " is : ",factorial)

输出结果

运行上面的代码给我们以下结果-

Enter a number: 5
Factorail of 5 is : 120

使用递归

示例

num = input("Enter a number: ")
def recur_factorial(n):
if n == 1:
   return n
elif n < 1:
   return ("NA")
else:
   return n*recur_factorial(n-1)
print (recur_factorial(int(num)))

输出结果

运行上面的代码给我们以下结果-

#Run1:
Enter a number: 5
120
#Run2:
Enter a number: -2
NA

使用math.factorial()

在这种情况下,我们可以直接使用数学模块中可用的阶乘函数。我们无需编写用于阶乘功能的代码,而直接使用math.factorial()。这也可以解决负数和小数的情况。

示例

import math
num = input("Enter a number: ")
print("The factorial of ", num, " is : ")
print(math.factorial(int(num)))

产出

运行上面的代码给我们以下结果-

#Run1:
Enter a number: 5
The factorial of 5 is :
120
#Run 2:
Enter a number: 3.6
Traceback (most recent call last):
The factorial of 3.6 is :
File "C:/Users....py", line 5, in
print(math.factorial(int(num)))
ValueError: invalid literal for int() with base 10: '3.6'