Python递归及math.filter()的使用

本文深入探讨了Python中函数的灵活使用,包括递归、阶乘计算、斐波那契数列生成及平方数筛选等数学算法实现。通过实例展示了函数作为参数和返回值的应用,介绍了filter函数在数据筛选中的高效用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

def f1(n):
    print(n * n)
    return n * n


def f2(a, b):
    return f1(a) * f1(b)


print(f2(3, 6))


# 遍历 计算  阶乘
def f3(n):
    sum = 1
    for i in range(1, n + 1):
        sum *= i
    print(sum)


f3(7)


# 递归 求 阶乘
def f4(n):
    if n == 1:
        return 1
    return n * f4(n - 1)


print(f4(7))


# 斐波那契数列

# 0 1 1 2 3 5 8 13 21...

def f5(n):
    if n == 1:
        return 0
    elif n == 2:
        return 1
    elif n > 2:
        return f5(n - 1) + f5(n - 2)


print(f5(5))

要点:

  • 函数名可以作为返回值返回
  • range(a,b) 范围是a 到b-1
  • 递归时,先考虑封底,比如if n == 1: return 1

 


import math


# filter(function, iterable)
# function -- 判断函数。 满足该条件就返回该值
# iterable -- 可迭代对象。
def is_sqr(x):  # 判断是否是整数
    return math.sqrt(x) % 1 == 0  # 开根号后

# 打印1-100之间的平方数
tmplist = filter(is_sqr, range(1, 101))
newlist = list(tmplist)
print(newlist)

# 函数名可以作为参数传入
# 函数名可以作为返回值

要点:

  • filter(function, iterable) function -- 判断函数。 满足该条件就返回该值 iterable -- 可迭代对象。
  • 整数判断逻辑:开根号能整除1就是平方数
  • 函数名可以作为参数传入,也可以作为返回值

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值