Python - 函数复习 & 冒泡排序 & 递归 & 装饰器
一、函数作为参数 #### 例1 def f1(): print('F1被执行') def f2(arg): arg() #f1 = arg 当f1被作为参数传进来的时候,arg() 就相当于f1()也就是调用了f1函数 return 'F2被执行' ret = f2(f1) #f1不加括号时,代指函数, print(ret) #### 例2 def Myfilter(founc,li): result = [] for i in li: ret = founc(i) #由于执行函数的时候传的是f1,这里执行f1函数,返回的值赋给ret if ret: result.append(i) return result def f1(x): return True if x > 22 else False #当执行到founc(i)的时候,调用函数f1,并判断x(也就是i)的值 r = Myfilter(f1,[11,22,33,44]) #执行函数Myfilter并返回值赋值给r print(r) 二、冒泡排序 利用一个中间值,讲两个数值交换 li = [11,22,33,44,55] temp = li[1] #temp = 22 li[1] = li[2] #li[1] =33 li[2] = temp #li[2] = temp = 22 print(li) #[11,33,22,44,55] li = [33,2,10,1] for j in range(1,len(li)): for i in range(len(li)-j): #逐渐减少次数 if li[i] > li[i + 1]: #每循环一次判断两个值的大小,交换位置 temp = li[i] li[i] = li[i + 1] li[i + 1] = temp print(li) #[1...