• Python学习————二分法及匿名函数


    一、二分法

    算法:是高效解决问题的办法
    算法之二分法

    需求:有一个按照从小到大顺序排列的数字列表
    需要从该数字列表中找到我们想要的那个一个数字
    如何做更高效???

    nums=[-3,4,7,10,13,21,43,77,89]
    find_num=10
    
    nums=[-3,4,13,10,-2,7,89]
    nums.sort()
    print(nums)
    

    方案一:整体遍历效率太低

    or num in nums:
        if num == find_num:
            print('find it')
            break
    

    方案二:二分法

    def binary_search(find_num,列表):
        mid_val=找列表中间的值
        if find_num > mid_val:
    

    接下来的查找应该是在列表的右半部分

    ​ 列表=列表切片右半部分

        binary_search(find_num,列表)
        elif find_num < mid_val:
    

    接下来的查找应该是在列表的左半部分

    ​ 列表=列表切片左半部分

       binary_search(find_num,列表)
        else:
            print('find it')
    
    nums=[-3,4,7,10,13,21,43,77,89]
    find_num=8
    def binary_search(find_num,l):
        print(l)
        if len(l) == 0:
            print('找的值不存在')
            return
        mid_index=len(l) // 2
    
    ​    if find_num > l[mid_index]:
    

    接下来的查找应该是在列表的右半部分

      l=l[mid_index+1:]
            binary_search(find_num,l)
        elif find_num < l[mid_index]:
    

    接下来的查找应该是在列表的左半部分

     l=l[:mid_index]
            binary_search(find_num,l)
        else:
            print('find it')
    
    binary_search(find_num,nums)
    

    1、def用于定义有名函数

    func=函数的内存地址
    def func(x,y):
        return x+y
    
    print(func)
    

    2、lamdab用于定义匿名函数

    print(lambda x,y:x+y)
    

    3、调用匿名函数

    方式一:

    res=(lambda x,y:x+y)(1,2)
    print(res)
    

    方式二:

    func=lambda x,y:x+y
    res=func(1,2)
    print(res)
    

    4、匿名用于临时调用一次的场景:更多的是将匿名与其他函数配合使用

    编程思想/范式

    面向过程的编程思想:
    核心是"过程"二字,过程即流程,指的是做事的步骤:先什么、再什么、后干什么
    基于该思想编写程序就好比在设计一条流水线

    优点:复杂的问题流程化、进而简单化
    缺点:扩展性非常差

    面向过程的编程思想应用场景解析:
    1、不是所有的软件都需要频繁更迭:比如编写脚本
    2、即便是一个软件需要频繁更迭,也不并不代表这个软件所有的组成部分都需要一起更迭

  • 相关阅读:
    go语言与区块链
    git+jenkins
    cicd
    devops
    Go 并发
    Thinkphp5-未定义数据库类型
    用golang写爬虫
    kubernetes-通过VMware搭建k8s集群遇到的问题
    亚马逊全球开店2019
    kafka命令大全
  • 原文地址:https://www.cnblogs.com/x945669/p/12578595.html
Copyright © 2020-2023  润新知