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)
     
  • 相关阅读:
    二叉树学习随笔
    结构体初始化中的数组赋值
    C和FORTRAN的快速傅里叶/余弦/正弦变换(Fast Fourier/Cosine/Sine Transform)开源库分享
    Java简单的数组用法尝试,和C语言很不一样
    中位数( 优先队列较优处理 )
    单调队列 数组写法qwq
    P1886 滑动窗口
    Sicily 2014. Dairy Queen
    P3385 【模板】负环
    [USACO06DEC]虫洞Wormholes (负环模板)
  • 原文地址:https://www.cnblogs.com/sanshuimiao/p/8085350.html
Copyright © 2011-2022 走看看