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

版权声明:本文为博主原创文章,未经博主允许不得转载。不准各种形式的复制及盗图 https://blog.csdn.net/qq_26816591/article/details/88533427
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就是平方数
  • 函数名可以作为参数传入,也可以作为返回值

猜你喜欢

转载自blog.csdn.net/qq_26816591/article/details/88533427
今日推荐