递归函数与高阶函数

#_author:Administrator#date:2019/11/1#1

def fun(*args):    print(args)a=[1,2,3]fun(*a)# (1, 2, 3)print(‘--------------‘)def fun1(**kwargs):    print(kwargs)fun1(**{‘name‘:‘star‘})#{‘name‘: ‘star‘}直接传一个字典#2.高阶函数#(1)函数名是一个变量,可以进行赋值#(2)函数名可以做为函数的参数,还可以作为函数的返回值def f(n):    return n*ndef fun2(a,b,func):    return func(a)+func(b)print(fun2(2,3,f))#13print(‘---------------------‘)def fu():    def f():        return 5    return fm=fu()print(m)#<function fu.<locals>.f at 0x03719738> 是一个函数对象地址print(m())# 5print(‘---------------------‘)#3 递归函数def jie(n):    if n==1:        return 1    return n*jie(n-1)print(jie(5))# 120print(‘---------------------‘)#关于递归的特性:#1.内部调用自身函数#2.有一个结束条件#递归可以解决的问题都可以用循环来解决#递归在很多时候效率很低#斐波那契数列def fibo(n):    if n<=2:        return n    return fibo(n-1)+fibo(n-2)print(fibo(8))#34#0 1 1 2 3 5 8 13 21 34 55print(‘---------------------‘)

def fibo1(n):    if n==0 or n==1:        return n    return fibo1(n-1)+fibo1(n-2)print(fibo1(8))#21#4.内置函数print(‘---------------------‘)print(all([1,2,3,‘asd‘]))#True all()函数用于判断给定的可迭代参数 iterable中的所有元素是否都为 TRUE,如果是返回 True,否则返回 False。print(all([1,2,3,‘asd‘,‘‘]))#Falseprint(divmod(8,3))#求 余数 和 模 (2, 2)print(eval(‘3+4*6‘))#  27 eval()可以帮我们做算术运算,也可以将一个字符串转换为字典#重要的内置函数(1)filter 的功能是过滤掉序列中不符合函数条件的元素,当序列中要删减的元素可以用某些函数描述时,就应该想起filter函数。str=[‘a‘,‘s‘,‘d‘,‘f‘]def func(s):    if s!=‘d‘:        return sret=filter(func,str)print(ret)#<filter object at 0x007809F0> ret是一个过滤器对象,也是一个迭代器对象print(list(ret))#[‘a‘, ‘s‘, ‘f‘]print(‘------------------------‘)#(2)map() 是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。list=[‘a‘,‘s‘,‘d‘,‘f‘]def func(s):

    return s+‘star‘ret2=map(func,list)print(ret2)#<map object at 0x03910B10>print(list(ret2))#[‘astar‘, ‘sstar‘, ‘dstar‘, ‘fstar‘]对字符串进行处理#(3)reduce()要想调用此方法,前面加上from functools import reduce#对一个序列进行压缩运算,得到一个值。但是reduce在python2的时候是内置函数,到了python3移到了functools模块,所以使用之前需要 from functools import reduce#调用: reduce(function,iterable),其中function必须传入两个参数,iterable可以是列表或者元组

from functools import reducedef add_1(x,y):    return x + yprint(reduce(add_1,[1,2,3,4,5,6,7,8,9]))#45 reduce()的结果就是一个值print(reduce(add_1,range(1,101)))#5050#(4)lambda-->匿名函数def add_2(a,b):    return a+b

lambda x,y:x+y#通过reduce函数加lambda表达式(匿名函数)求阶乘from functools import reduceprint(reduce((lambda a,b:a*b),range(1,5)))#24#通过map函数加lambda表达式(匿名函数)squares=map(lambda x:x*x,range(9))print(squares)#<map object at 0x01250D90>print(list(squares))#[0, 1, 4, 9, 16, 25, 36, 49, 64]

原文地址:https://www.cnblogs.com/startl/p/11781274.html

时间: 2024-10-09 16:47:10

递归函数与高阶函数的相关文章

递归函数和高阶函数

#在函数内部,可以调用其他函数.如果一个函数在内部调用自己本身,这个函数就是递归函数. #递归特性#1.必须要有结束条件#2.每进入更深一层递归时,问题规模相比上次递归都应有所减少#3.递归效率不高,递归层次过多会导致栈溢出 #递归def cal(n):print(n)if int(n/2)>0:return cal(int(n/2))print("-->",n)cal(10) #高阶函数:一个函数接受另一个函数作为参数def add(a,b,f):return f(a)+

python函数(全局变量,局部变量,作用域,递归函数,高阶函数,匿名函数)

1.1函数 1.1.1什么是函数 函数就是程序实现模块化的基本单元,一般实现某一功能的集合.函数名:就相当于是程序代码集合的名称参数:就是函数运算时需要参与运算的值被称作为参数函数体:程序的某个功能,进行一系列的逻辑运算return 返回值:函数的返回值能表示函数的运行结果或运行状态. 1.1.2函数的作用 函数是组织好的,可重复使用的,用来实现单一,或者相关功能的代码. 函数能够提高应用的模块性,和代码的重复利用率 我们已近知道python提供了许多内置函数,比如print(),我们自已创建的

高阶函数、递归函数、内置函数

这里我们学习的是: 高阶函数 递归函数 内置函数 参数分类: # 这里的参考文章是:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431752945034eb82ac80a3e64b9bb4929b16eeed1eb9000'''函数的参数的分类:必选参数默认参数可变参数关键字参数命名关键字参数 调用的顺序就是,必选参数-默认参数-可变参数-命名关键字参数-关键字参数

8.5高阶函数、递归函数和内置函数

高阶函数.递归函数和内置函数 高阶函数和递归函数 #函数名可以进行赋值,可以作为函数参数,可以作为返回值 #高阶函数:允许导入函数作为参数导入或者返回值为函数 def f(n): return n*n def fun(a,b,fun1): an1=fun1(a)+fun1(b) return (an1) print(fun(1,2,f)) def sqrt(n): return n*n def function(a,b,function1): answer=function1(a)+functi

递归函数+高阶函数

函数: 1. 递归函数: 在函数内部,可以调用其他函数, 如果一个函数在内部调用自己本身,这个函数就是递归函数:  递归特性: 1. 必须要有一个明确的结束条件: 2. 每次进入更深一层次递归时,问题规模比上一次递归都应有所减少: 3. 递归效率不高,递归层次过多会导致栈溢出.最多支持999次   def calc(n):  if n > 1:   print(n)   return calc(n/2)  else:   return 1 calc(40)  输出: 40 20.0 10.0 5

十:高阶函数和递归函数

一:高阶函数: def:高阶函数简单来说就是在计算中用到的二次方,三次方等之类的函数,我们可以直接通过函数调用来实现. 1 # 高阶函数 2 3 def f(n): 4 return n * n 5 6 7 def foo(a,b,func): # 可以把函数作为参数传入另一个函数中 8 ret = func(a) + func(b) 9 return ret 10 11 print(foo(1,2,f)) 二:递归函数 def:递归函数就是一个函数在自己内部调用了自己,对于这类函数要找到递归函

python入门16 递归函数 高阶函数

递归函数:函数内部调用自身.(要注意跳出条件,否则会死循环) 高阶函数:函数的参数包含函数 递归函数 #coding:utf-8 #/usr/bin/python """ 2018-11-17 dinghanhua 递归函数 高阶函数 """ '''递归函数,函数内部调用函数本身''' '''n!''' def f_mul(n): if type(n) != type(1) or n <= 0: #不是整数或小于0 raise Except

14 python初学(高阶函数 递归函数 内置函数)

高阶函数:1.  函数名是一个变量,函数名可以进行赋值 2. 函数名可以作为函数参数,还可以作为函数返回值(函数名称作为函数返回值时返回的是:函数的地址:print 这个返回值的调用相当于执行这个函数. 函数调用作为函数返回值相当于返回这个函数的执行结果) def f(n): return n*n def foo(a, b, func): return func(a)+func(b) print(foo(1, 2, f)) # >>> 5 递归函数: 调用自身函数 设置结束条件 每次进入

8-[函数]-嵌套函数,匿名函数,高阶函数,递归函数

1.嵌套函数 (1)多层函数套用 name = "Alex" def change_name(): name = "Alex2" def change_name2(): name = "Alex3" print("第3层打印", name) change_name2() # 调用内层函数 print("第2层打印", name) change_name() print("最外层打印",