在数据分析和其他涉及python的数学分析中,经常需要找到数字的阶乘。总是通过将所有从1开始的整数乘以给定数来找到正整数的阶乘。可以通过以下三种方法来找到它。
我们可以使用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()。这也可以解决负数和小数的情况。
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'