zoukankan      html  css  js  c++  java
  • pyhton 函数参数,递归函数,高阶函数(一点点笔记)

    '''def test(x,y):
    print(x)
    print(y)
    test(2,y=3)
    def test(*args):#参数可以是不确定的多个数,接受N个位置参数,转换成元组形式
    print(args)
    test(1,2,2,3,3,4)

    def test(x,*args):#参数可以是不确定的多个数
    print(x,args)
    test(1,2,2,3,3,4)

    def test1(**kwargs):#将N个关键字参数转换成字典的方式
    print(kwargs)
    test1(name ='aa',age =9,sex ='f')
    test1(**{'name':'aaa','age':'12'})

    def test1(name,**kwargs):#将N个关键字参数转换成字典的方式
    print(name)
    print(kwargs)
    test1(name ='aa',age='44')
    '''
    def test1(name,*args,**kwargs):
    print(name)
    print(args)
    print(kwargs)
    test1(name ='aa',age='44')
    '''
    aa
    ()
    {'age': '44'}'''
    #递归:1.必须有一个明确的结束条件
    # 2.每次进入更深一层递归时,问题规模比上次递归都应有所减少
    # 3.递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)
    # 这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,
    # 栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出)
    def calc(n):
    print(n)
    if int(n/2) == 0:
    return n
    return calc(int(n/2))

    calc(10)
    #匿名函数:不需要显示的函数
    #函数式编程:指数学中的函数,即自变量的映射。也就是说一个函数的值仅决定于函数参数的值,
    # 不依赖其他状态。比如sqrt(x)函数计算x的平方根,只要x不变,不论什么时候调用,
    # 调用几次,值都是不变的。(不复杂的逻辑运算,输入确定,输出就是确定的。)

    #高阶函数:变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数
    def add(x,y,f):
    return f(x)+f(y)
    res =add(3,-6,abs)
    print(res)
     
  • 相关阅读:
    centos添加图形桌面
    centos 复制并重命名文件
    山东省第八届ACM程序设计大赛总结
    RMQ
    图的深度优先搜索
    ACM知识点清单
    优先队列(priority_queue)
    Contest Print Server
    k8s之证书签发(二)
    k8s环境之bind 9 (一)
  • 原文地址:https://www.cnblogs.com/sanshuimiao/p/8085350.html
Copyright © 2011-2022 走看看