学习笔记(02):21天通关Python(仅视频课)-案例实操:定义计算N的阶乘的函数

立即学习:https://edu.csdn.net/course/play/24797/282183?utm_source=blogtoedu

定义计算N的阶乘的函数

# 循环---------------------------------
def testfun(n):
    r = 1
    if n < 1:
        print('n 不能小于1')
        return
    else:
        for i in range(1, n + 1):
            # 1*n 2*n 3*n
            r *= i
    return r


print(testfun(5))
print(testfun(6))
print(testfun(7))


# 递归---------------------------------
def testfun2(n):
    r = 1
    if n < 1:
        print('n 不能小于1')
        return
    elif n == 1:
        return 1
    else:
        return testfun2(n - 1) * n


print(testfun2(5))
print(testfun2(6))
print(testfun2(7))

# functools---------------------------
import functools


def funtools(x, y):
    return x * y


def testfun3(n):
    r = 1
    if n < 1:
        print('n 不能小于1')
        return
    else:
        return functools.reduce(funtools, range(1, n + 1))


print(testfun3(5))
print(testfun3(6))
print(testfun3(7))

# functools--lambda---------------------------
import functools


def testfun4(n):
    r = 1
    if n < 1:
        print('n 不能小于1')
        return
    else:
        return functools.reduce(lambda x, y: x * y, range(1, n + 1))


print(testfun4(5))
print(testfun4(6))
print(testfun4(7))
发布了25 篇原创文章 · 获赞 4 · 访问量 613

猜你喜欢

转载自blog.csdn.net/happyk213/article/details/105126054