函数

作者: GHope | 来源:发表于2018-11-28 23:45 被阅读173次

高阶函数
filter(过滤) --> map(映射) --> functools.reduce(规约)
生成式、推导式(一定程度上对高阶函数的替代)
[x ** x for x in l if x % 2]

函数参数:

  1. 位置参数
  2. 可变参数 - tuple
  3. 关键字参数 - dict
  4. 命名关键字参数

在Python中函数是一等对象(公民):
1、函数可以赋值给变量
2、函数可以作为函数的参数 ---> filter / map
3、函数可以作为函数的返回值 ---> 装饰器

编程范式(理念):
指令编程(汇编语言)/ 过程式编程(C语言)
Python即支持面向对象编程又支持函数式编程

一行代码求阶乘(1-5)

# 高阶函数
reduce(int.__mul__, range(1,6))
# 定义求n的求阶乘函数
fn = lambda n: reduce(int.__mul__, range(1, n + 1))

heapq(求最大或最小的几个)

list1 = [2,3,4,5,6,7,8]

# 最大的3个
heapq.nlargest(3,list1)

# 最小的3个
heapq.nsmallest(3,list1)

dict2 = [{'name':'Hope', 'age':18},{'name':'Lucy', 'age':16},{'name':'Tom', 'age':22}]

itertools(排列 / 组合 / 笛卡尔积)

def main():
    for val in itertools.permutations('ABCD'):
        print(val)
    print('-' * 50)
    for val in itertools.combinations('ABCDE', 3):
        print(val)
    print('-' * 50)
    for val in itertools.product('ABCD', '123'):
        print(val)


if __name__ == '__main__':
    main()

collections模块下的工具类

"""
找出序列中出现次数最多的元素
"""
from collections import Counter


def main():
    words = [
        'look', 'into', 'my', 'eyes', 'look', 'into', 'my', 'eyes',
        'the', 'eyes', 'the', 'eyes', 'the', 'eyes', 'not', 'around',
        'the', 'eyes', "don't", 'look', 'around', 'the', 'eyes',
        'look', 'into', 'my', 'eyes', "you're", 'under'
    ]
    counter = Counter(words)
    print(counter.most_common(3))


if __name__ == '__main__':
    main()

穷举法、贪婪法、分治法、动态规划

"""
穷举法 - 穷尽所有可能直到找到正确答案
"""


def main():
    # 公鸡5元一只 母鸡3元一只 小鸡1元三只
    # 用100元买100只鸡 问公鸡/母鸡/小鸡各多少只
    for x in range(20):
        for y in range(33):
            z = 100 - x - y
            if 5 * x + 3 * y + z // 3 == 100 and z % 3 == 0:
                print(x, y, z)
    # A、B、C、D、E五人在某天夜里合伙捕鱼 最后疲惫不堪各自睡觉
    # 第二天A第一个醒来 他将鱼分为5份 扔掉多余的1条 拿走自己的一份
    # B第二个醒来 也将鱼分为5份 扔掉多余的1条 拿走自己的一份
    # 然后C、D、E依次醒来也按同样的方式分鱼 问他们至少捕了多少条鱼
    fish = 1
    while True:
        total = fish
        enough = True
        for _ in range(5):
            if (total - 1) % 5 == 0:
                total = (total - 1) // 5 * 4
            else:
                enough = False
                break
        if enough:
            print(fish)
            break
        fish += 1


if __name__ == '__main__':
    main()
def fib(num, temp={}):
    """用递归计算Fibonacci数(动态规划)"""
    if num in (1, 2):
        return 1
    try:
        return temp[num]
    except KeyError:
        temp[num] = fib(num - 1) + fib(num - 2)
        return temp[num]

相关文章

  • Excel(三)

    AND函数 OR函数 NOT函数 IF函数 频率分析函数FREQUENCY

  • if、else if、for、while、repeat函数

    ①if函数 ②else if函数 ③for函数 ④while函数 ⑤repeat函数

  • strsplit、mapply、paste、match函数

    strsplit函数 mapply函数 strsplit函数 mapply函数 paste函数 match函数 第...

  • Oracle中常用函数(SQL)

    Oracle函授有以下几个分类:数字函数、字符函数、日期函数、转换函数、集合函数、分析函数 数字函数: 字符函数:...

  • MySQL函数

    字符函数 数字运算函数 比较运算符和函数 日期时间函数 信息函数 聚合函数 加密函数 流程函数

  • BI-SQL丨AND & OR & IN

    AND函数 & OR函数 & IN函数 AND函数、OR函数和IN函数都可以理解是WHERE函数的补充,当然也可以...

  • Python之函数

    课程大纲 函数定义 函数的参数 函数的返回值 高阶函数 函数作用域 递归函数 匿名函数 内置函数 函数式编程 将函...

  • 函数基本知识

    函数 函数的定义: def 函数名() 函数的调用:函数名() #不能将函数调用放在函数定义上方 函数的文档注...

  • 积分表——不定期更新

    基本初等函数包括: 常函数: 幂函数 指数函数 对数函数 三角函数 反三角函数 I、反函数Ⅱ、复合函数:初等函数(...

  • MySQL基本使用

    函数 常用函数 数学函数 字符串函数 日期函数

网友评论

本文标题:函数

本文链接:https://www.haomeiwen.com/subject/fdcifqtx.html