码迷,mamicode.com
首页 > 其他好文 > 详细

内置函数,匿名函数,递归

时间:2017-06-21 21:13:28      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:可变   rar   highlight   结果   全局变量   网址   cti   顺序   对象   

内置函数:

详查下网址

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))

 

内置函数,匿名函数,递归

标签:可变   rar   highlight   结果   全局变量   网址   cti   顺序   对象   

原文地址:http://www.cnblogs.com/mona524/p/7061420.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!