在 Python 中计算阶乘
一个数的阶乘是所有小于或等于这个数的正整数的乘积。例如,5 的阶乘是所有小于等于 5 的数字的乘积,即 5 * 4 * 3 * 2 * 1
,等于 120。因此,数字 5 的阶乘是 120。
现在让我们写一个 Python 函数来计算一个数字的阶乘。在 Python 中,我们有两种方法可以写一个阶乘程序,一种是使用迭代法,另一种是使用递归法。
在 Python 中使用迭代法计算一个数的阶乘数
使用迭代方法的阶乘程序无非是在我们的程序中使用循环,如 for
循环或 while
循环。在 Python 中编写阶乘迭代程序时,我们必须检查三个条件。
- 给定的数字是负数。如果这个数字是负数,那么我们将简单地说,我们找不到阶乘,因为负数的阶乘不存在。
-
给定的数字是零。如果数字是零,那么我们将简单地打印
1
,因为零的阶乘是1
。 - 给定的数字是正数。如果数字是正数,那么我们只需要找到它的阶乘。
def factorial(num):
if num < 0:
print("Factorial of negative num does not exist")
elif num == 0:
return 1
else:
fact = 1
while num > 1:
fact *= num
num -= 1
return fact
num = 5
print("Factorial of", num, "is", factorial(num))
输出:
Factorial of 5 is 120
在 Python 中使用递归计算一个数字的阶乘
递归无非就是一次又一次地调用同一个函数。使用递归,我们可以编写更少的代码行,这将比我们使用迭代方法编写的代码更具可读性。
每当我们调用一个递归函数时,都会在内存中创建一个递归栈。这个递归栈有一个叫做程序计数器的东西,它可以跟踪递归函数执行完毕后下一条要执行的指令。
def factorial(n):
return 1 if (n == 1 or n == 0) else n * factorial(n - 1)
num = 5
print("Factorial of", num, "is", factorial(num))
输出:
Factorial of 5 is 120
使用 Python 中的 math.factorial()
函数计算一个数字的阶乘
你想用一行字就写出一个阶乘函数吗?你是否觉得不可能?有一种方法可以用一行代码写一个阶乘函数。可以通过 math
模块来实现。在 math
模块中,有一个 factorial
函数来计算一个数字的阶乘。
你必须从数学模块中导入这个函数,在你的程序中调用它,并传递你想计算的阶乘数。请看下面的例子。
from math import factorial
print("Factorial is", factorial(5))
输出:
Factorial is 120
相关文章
在 Python 中将 NumPy 数组转换为列表
发布时间:2023/12/24 浏览次数:102 分类:Python
-
本教程演示了如何将 numpy 数组转换为 Python 中的列表。列表和数组是 Python 中两个最基本且最常用的集合对象。
Python 中追加二维数组
发布时间:2023/12/24 浏览次数:158 分类:Python
-
本教程讨论如何在 Python 中将值附加到二维数组。在 Python 中,我们可以有 ND 数组。我们可以使用 NumPy 模块在 Python 中处理数组。
在 Python 中将数组写入文本文件
发布时间:2023/12/24 浏览次数:68 分类:Python
-
本教程演示如何在 python 中将数组保存到文本文件中。读取和写入文件是构建许多用户使用的程序的一个重要方面。Python 提供了一系列可用于资源处理的方法。
Python 导出到 Excel
发布时间:2023/12/24 浏览次数:129 分类:Python
-
有四种主要方法可用于在 Python 中将数据写入 Excel 文件,DataFrame.to_excel() 方法、xlwt 库、openpyxl 库和 XlsWriter 库。
使用 Selenium Python 在浏览器中打开和关闭标签页
发布时间:2023/12/24 浏览次数:92 分类:Python
-
本教程演示了如何在 Python 中使用 Selenium 在浏览器中自动打开一个新标签页。Selenium 是强大的 Web 自动化和测试工具。我们使用 Selenium 编写脚本,它可以控制 Web 浏览器并执行特定操作。
Conda 安装 Cv2
发布时间:2023/12/24 浏览次数:106 分类:Python
-
本教程演示了如何在 Python 中为 anaconda 用户安装 cv2 模块。互联网上有许多可用的 Python IDE。一种这样的 Python IDE 是 Anaconda,这是一种开源软件
使用 OpenCV solvepnp() 函数解决 PnP 问题
发布时间:2023/12/24 浏览次数:85 分类:Python
-
本教程讨论在 Python 中使用 OpenCV 中的 solvepnp 函数。OpenCV 库是一个开源库,旨在帮助完成计算机视觉任务。
Python 中 NumPy 数组的滑动平均值
发布时间:2023/12/24 浏览次数:145 分类:Python
-
本教程演示了如何在 python 中计算 numpy 数组的滑动平均值。滑动平均值通常用于通过计算特定时间间隔的数据平均值来研究时间序列数据。
在 Python 中计算马氏距离
发布时间:2023/12/24 浏览次数:125 分类:Python
-
有两个主要方法可用于在 Python 中查找两个 NumPy 数组之间的马氏距离,scipy 库中的 cdist() 函数和 numpy 包中的 numpy.einsum() 函数。