内置函数
一. 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