内置函数

一. lambda 匿名函数

  lambda 参数 :返回值

  匿名函数统一都加lambda

二. sorted() 排序函数

  sorted(iterable,key,reverse)

  key:排序规则

  运行流程:把可迭代对象中的每一个元素交给后面key函数来执行.得到一个数字(权重).通过这个权重进行排序

三.filter()  过滤函数

  filter(function,iterable)

  把可迭代对象中的每一个元素交给前面的函数进行筛选,函数通过返回True或者False来判断答案

四.map() 映射函数

  map(function,iterable)

  把可迭代对象中的数据交给前面的函数进行执行,返回值就是map的处理结果

五.递归

  函数自己调用自己

  官方最大深度:1000 到不了1000就停了

n = 1
def func():
    global n
    print("哈哈")
    n = n + 1
    print(n)
    func()
func()
#亲测到998就报错了


#遍历d盘下的文件夹python全栈所讲内容的文件名
import
os def func(filepath,n): files = os.listdir(filepath) for file in files: f_d = os.path.join(filepath,file) if os.path.isdir(f_d): print("\t"*n,file,":") func(f_d,n+1) else: print("\t"*n,file) func("d:/python全栈所讲内容",0)

 

六.二分法

  核心:掐头去尾取中间.一次砍一半

#while循环二分方法
lst = [22, 33, 44, 55, 66, 77, 88, 99, 101 , 238 , 345 , 456 , 567 , 678 , 789] n = 345 left = 0 right = len(lst)- 1 while left <= right: mid = (left+right)//2 if lst[mid] > n: right = mid -1 elif lst[mid] < n: left = mid + 1 else: lst[mid] = n print("找到了") break else: print("没找到")

#递归二分方法
lst = [22, 33, 44, 55, 66, 77, 88, 99, 101 , 238 , 345 , 456 , 567 , 678 , 789]
# def func(left,right,n):
# if left <= right:
# mid = (left + right)//2
# if lst[mid] < n:
# left = mid+1
# return func(left,right,n)
# elif lst[mid] > n:
# right = mid - 1
# return func(left,right,n)
#
# elif lst[mid] == n:
# print("找到了")
# return mid
# else:
# print("没找到")
# return -1
# ret = func(0,len(lst)-1,103)
# print(ret)
#特别要注意return函数的返回值返回给调用者,所以递归返回值时要特别注意return

 

 

 

 

  

    

  

 

posted @ 2018-08-15 20:09  年少有为  阅读(140)  评论(0编辑  收藏  举报