zoukankan      html  css  js  c++  java
  • 内置函数,匿名函数,递归

    内置函数:

    详查下网址

    https://docs.python.org/3/library/functions.html?highlight=built#ascii

    divmod(x, y)             # (商, 模)
    enumerate(可迭代对象)          # (序号,值)
    eval(字符串)            # 把字符串当成命令执行
    frozenset({1,2,3})              # 不可变集合
    globals()               # 查看全局变量
    locals()               # 查看局部变量
    isinstance(3, int)             # 查看3是不是int类型
    pow(3,3)                 # 3**3
    pow(3,3,2)             # 3**3 % 2
    reversed()              # 翻转
    round(3.3456, 3)          # 保留3位小数后四舍五入

    zip():拉链函数

      s = 'hello'
      l = [1,2,3,4,5,6]
      zip(s,l) 

    map:映射,每个元素执行lambda表达式结果
    l=[1,2,3,4]
    m = map(lambda x:x**2, l)
    生成一个迭代器,循环后结果
    print(list(m))
    >>[1,4,9,16]

    reduce:合并

    from functools import reduce

    reduce(合并规则(func),可迭代对象range(100),初始值)

    filter
    filter(lambda, 列表) # 打印返回结果为True的值

    sorted:排序,没有改变原来的顺序
    sorted(list)
    sorted(list, reverse=True)

    匿名函数:

    1 #这段代码
    2 def calc(n):
    3     return n**n
    4 print(calc(10))
    5  
    6 #换成匿名函数
    7 calc = lambda n:n**n
    8 print(calc(10))

    递归:

    递归特性:

    1. 必须有一个明确的结束条件(否则容易死循环)

    2. 每次进入更深一层递归时,问题规模相比上次递归都应有所减少

    3. 递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出)

    def febo(n):
        if n == 1 or n == 2:
            return 1
        else:febo(n-1)+febo(n+1)
    
    
    def  febo(n):
        a,b=0,1
        res=[]
        for i in range(n):
            c=b
            b=a+b
            a=c
            res.append(b)
        return res
    斐波那契数列
    
    

    '''实现一个输出前 30 个整数的阶乘的程序。
    n! 的阶乘定义为:n! = n * (n-1)!, 0! = 1,因此它非常适合使用递归函数来实现。''

    def func(n):
        res=1
        if n>0:
            res=n*func(n-1)
        return res
    
    print(func(30))
  • 相关阅读:
    jsp第四次作业
    软件测试第一次作业
    jsp第三次作业
    jsp第二次作业
    JSP第九次作业
    JSP第八次作业
    JSP第七次作业
    JSP第六次作业
    JSP第五次作业
    JSP第四次作业2
  • 原文地址:https://www.cnblogs.com/mona524/p/7061420.html
Copyright © 2011-2022 走看看