# Python 程序：使用递归查找数字的阶乘

> 原文： [https://www.programiz.com/python-programming/examples/factorial-recursion](https://www.programiz.com/python-programming/examples/factorial-recursion)

#### 在此程序中，您将学习使用递归函数查找数字的阶乘。

要理解此示例，您应该了解以下 [Python 编程](/python-programming "Python tutorial")主题：

*   [Python `if...else`语句](/python-programming/if-elif-else)
*   [Python 函数](/python-programming/function)
*   [Python 递归](/python-programming/recursion)

* * *

一个数字的阶乘是从 1 到该数字的所有整数的乘积。

例如，阶乘 6 是`1*2*3*4*5*6 = 720`。 没有定义负数的阶乘，零阶的阶乘是 1，`0! = 1`。

## 源代码

```py
# Factorial of a number using recursion

def recur_factorial(n):
   if n == 1:
       return n
   else:
       return n*recur_factorial(n-1)

num = 7

# check if the number is negative
if num < 0:
   print("Sorry, factorial does not exist for negative numbers")
elif num == 0:
   print("The factorial of 0 is 1")
else:
   print("The factorial of", num, "is", recur_factorial(num)) 
```

**输出**

```py
The factorial of 7 is 5040 
```

**注意**：要查找另一个数字的阶乘，请更改`num`的值。

在此，编号存储在`num`中。 该数字将传递给`recur_factorial()`函数以计算该数字的阶乘。