zoukankan      html  css  js  c++  java
  • day14 内置函数二

    今日所学:

    1. 昨日内容补充 

        repr()显示出字符串的官方表示形式

        ord(元素)  查看编码的位置 

        chr(编码)  查看编码所对应的元素

    2.递归  : 自己调用自己 就是递归,在python中递归最大的深度是997,官方给出的最大深度是1000

    从python中显示d盘所有的文件名字
    import os # 引入OS模块 def func(lujing,n): #定义路径 lst=os.listdir(lujing) #打开路径 for i in lst: #遍历路径,拿到文件夹 path=os.path.join(lujing,i) 找到d盘中的文件名 if os.path.isdir(path): #判断路径是否是文件夹 print(' '*n,i) #显示文件夹的名字 func(path,n+1) #递归 ,再来一次 (最重要) else: print(i) #如果不是文件夹,打印文件名字 func(d:/老男孩教学,0) #传参

      

      递归的入口(参数) 和出口(return)比较重要 

      主要用途 : 树形结构的遍历

     3 . 二分法  (二分法查找主要的作用是查找元素)  

      掐头去尾取中间    查找效率非常高

    用递归去运用2分法 (这种方法是最推荐掌握的)(需要你明白和掌握)
    def func(n,lst,left,right):
       if left<=right: 
           mid=(left+right)//2
           if n >lst[mid]:
              left=mid+1
              return func(n,lst,left,right)
           elif n<lst[mid]:
              right=mid-1
              return func(n,lst,left,right) 
           else:
             print('找到数了')
             return mid
      else:
        print('没找到数')
        return -1
    s=int(input('请输入你要查找的内容:'))
    lst = [1,3,5,7,12,36,68,79] # 数据集 百万级数据
    ret=func(s,lst,0,len(lst)-1)
    print(ret)
    
    二分法  # 不使用递归(需要你明白和掌握)
     lst = [1,3,5,7,12,36,68,79]
    s=int(input('请输入你要查找的内容:'))
    left=0  #左函数
    right=len(lst)-1  #右函数
    while left<=right:   #判断如果左函数小于右函数
        mid=(left+right)//2   #求中间值
        if s>mid: # 如果输入的数大于中间值
            left=mid+1  
        elif s<mid: # 如果输入的数小于中间值
            right=mid-1
        else:   #输入的数等于中间值
            print('找到数了')
            break    #退出
    else:  # 如果左函数大于右函数
        print('没找到数')
    

     4. 补充 :最快速的查找方法(既节省内存,查找速度又快)

    lst = [1,3,55,98,37,41,2,5,1,4]
    new_lis=[]  #新建一个列表
    for i in range(99):  #找到列表中最大的数字,用for循环把所有的数字拿出来
        new_lis.append(0) #在新列表中添加98个0
    for el in lst: #循环之前的列表,把新列表中对应的数字变成1
        new_is[el]=1
    cont=int(input('请输入你要查找的内容:'))
    if new_lis[cont]==0: #如果你输入的数字在新列表中是0 ,没找到数
        print('没找到数')
    elif new_lis[cont]==1: #如果输入的数字在新列表中是1,找到数了
        print('找到数了')
    

      

  • 相关阅读:
    MySQL表的完整性约束
    MySQL支持的数据类型
    MySQL表操作
    MySQL存储引擎概述
    onblur和onkeyup事件
    Web控件LinkButton
    jQuery防止中文乱码
    jQuery 动态添加、删除css样式
    VS2012生成Web时报未能找到元数据文件xxx.dll
    单击EasyUI的datagrid行时不选中
  • 原文地址:https://www.cnblogs.com/zty1304368100/p/10115506.html
Copyright © 2011-2022 走看看