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'