python 递归、循环、函数案例:计算阶乘

本文将简单讲解python计算阶乘的方法:主要实现方法包括利用函数进行递归与循环的封装,还有直接利用循环进行实现这三种。
编译环境:jupyter notebook

1.递归实现阶乘

所谓递归就是指函数自己调用自己,而为了防止一直自我调用导致死循环,所以在进行递归时务必要加入限制条件。
接着就是关于阶乘的计算,阶乘的算法为:
f ( x ) = x × ( x − 1 ) × ( x − 2 ) × ⋯ × 1 f\left( x \right) =x\times \left( x-1 \right) \times \left( x-2 \right) \times \cdots \times 1 f(x)=x×(x1)×(x2)××1
即每一项都为前一项的值减1,直至最后一项的值为1.
下面进行代码实现:

def math_dgjc(x):
    if x<=1: #设置限制条件
        return 1
    else:
        return math_dxs(x-1)*x #编写阶乘公式
math_dgjc(5)

这里简单说明下每一行,首先是第一行构建函数,函数名的格式为函数名+括号,括号中是你要输入的参数,在本文中为要计算的数,也可以不输入。接着就是关于递归的使用了,因为每一项为前一项的值减1,所以只需要让他不断递减即可。

结果如下:

120

2.循环实现阶乘

递归是让计算过程变现为逐渐减1,这里利用循环使计算过程表现为逐渐加1,同样需要设置循环中止条件,代码如下:

def math_xhjc(x):
    a = 1
    for i in range(1,x+1): #使递增值不超过原数
        a = i*a
    return a
math_xhjc(5)

上面的代码中需要注意的是要提前规定变量a的值,以便后期承接阶乘值,如果不事先赋值的话就会因为未知变量赋值而报错,在循环中由于range()函数为左闭右开区间,所以为了取到原值需要1。
结果如下:

120

3.纯循环实现阶乘

这里不采用函数方法进行阶乘计算,下面直接展示代码:

a = 1
for i in range(1,5+1):
    a = i*a
print(a)

为了增加程序的可读性对循环上限的格式仍然为x+1的形式。
结果如下:

120
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值