• 函数式编程与参数


    函数:def定义,有返回值

    过程:def定义,没有返回值

    函数式编程是 抽象程度很高的编程范式,纯粹的函数式编程语言编写的函数没有变量。所以,任意函数,只要输入是确定的,输出就是确定的,就像数学里的函数,变量和因变量的关系是明确的。

    Python对函数式编程提供部分支持,由于Python允许使用变量,所以Python不是纯函数式编程语言。

    数学表达式:(1+2)*3-4

    # 面向过程
    var a = 1 + 2
    var b = a * 3
    var c = b - 4
    
    # 函数式
    var result = subtract(multiply(add(1, 2), 3), 4)

    函数式编程的语言:lisp, hashshell,erlang

    形参与实参

    >>> def test(a, b):  # a,b就是形参
    ...   print(a)
    ...   print(b)
    ...
    >>> test(1, 2) # 1,2就是实参
    1
    2

    默认参数(声明时)

    >>> def test(a, b=2): # 这里的默认参数就是b
    ...   print(a)
    ...   print(b)
    ...
    >>> test(1)
    1
    2

    位置参数与关键字参数(调用时)

    >>> def test(a, b, c):
    ...   print(a)
    ...   print(b)
    ...   print(c)
    ...
    >>> test(1,c=2,b=3) # 这里的1就是位置参数,2和3是关键字参数
    1
    3
    2

    不固定参数

    *args:把对应的位置参数放到元组里

    **kwargs:把对应的关键字参数放到字典里

    >>> def test(*args, **kwargs):
    ...   print(args)
    ...   print(kwargs)
    ...
    >>> test(1,2,3,a=4,b=5) # 等价于>>> test(*[1,2,3], **{'b':5,'a':4})
    (1, 2, 3)
    {'b': 5, 'a': 4}

    声明函数时,不固定参数一定要放在位置参数和默认参数的后面

    调用函数时,关键字参数一定要放在位置参数的后面

  • 相关阅读:
    css选择器优先级
    内置函数filter和map
    hdu 3068 最长回文 manacher算法(视频)
    hdu 5752 Sqrt Bo
    HDU 2176 取(m堆)石子游戏(Nim)
    HDU 2188 悼念512汶川大地震遇难同胞――选拔志愿者(巴什博奕)
    HDU 2897 邂逅明下(巴什博奕)
    POJ 1740 A New Stone Game(普通博弈)
    HDU 2516 取石子游戏(斐波那契博弈)
    hdu 1361 Parencodings 简单模拟
  • 原文地址:https://www.cnblogs.com/allenzhang-920/p/8735634.html
Copyright © 2020-2023  润新知