匿名函数 lambda 匿名函数 格式 lambda 参数:返回值 函数名统一叫lambda,最多只能写一行普通的正常的函数 def func(n):return n * n lambda匿名函数写法 a = lambda n : n**2 print(a(3)) 当有多个返回值时suiyi = lambda x, y : (1, 2) # 笔试题 返回值有多个要用(),返回值时已元组方式返回的 print(suiyi) #==》<function <lambda> at 0x03713420> print(suiyi(250,38)) #==》(1, 2) 递归 在函数中调用自己,python最大递归层数是1000,不到1000就会提前报错,sys.setrecursionlimit(10000000),可以更改递归最大层数import sys sys.setrecursionlimit(10000000) n = 0 def story():global nn += 1print(n)story() story() 遍历 D:/sylar文件夹, 打印出所有的文件和普通文件的文件名import os def func(filepath, n): # d:/sylar/# 1,打开这个文件夹files = os.listdir(filepath)# 2. 拿到每一个文件名for file in files: # 文件名# 3. 获取到路径f_d = os.path.join(filepath, file) # d:/sylar/文件名/# 4. 判断是否是文件夹if os.path.isdir(f_d):# 5. 如果是文件夹. 继续再来一遍print("\t"*n, file,":") # 打印文件名func(f_d, n + 1)#如果是文件夹继续循环调用else: # 不是文件夹. 普通文件print("\t"*n, file)func("d:/sylar",0)二分法查找 二分法思想:二分法的序列必须是有序的,从小到大排序,先和中间的比较大小如果比中间的值大,则所取值在右侧,左边值右移,如此循环比较lst = [22, 33, 44, 55, 66, 77, 88, 99, 101 , 238 , 345 , 456 , 567 , 678 , 789]def fun(n):left = 0right = len(lst) - 1while lst[left] <= lst[right]:mid = (left+right) // 2if n > lst[mid]:left = mid + 1if n < lst[mid]:right = mid - 1if n == lst[mid]:print('yes', mid)breakelse:print('no')fun(101)
冒泡排序
lst = [22, 13, 44, 55, 66, 77, 88, 99, 101 , 8 , 345 , 456 , 57 , 678 , 789]def fun(lst):for i in range(len(lst)):for i in range(len(lst)-1):if lst[i] > lst[i+1]:lst[i], lst[i + 1] = lst[i+1], lst[i]return lstprint(fun(lst))