# python使用lambda建立匿名函式
foo = [ 18, 9, 22, 17, 24, 8, 12, 27]
print(list(filter(lambda x:x%3==0,foo)))
print(list(map(lambda x:x*2+10,foo)))
import functools,_functools
def max(x,y):
if xy:
return y
else:
return x
print(functools.reduce(max,foo))
# a=int(input("請輸入第乙個運算元:"))
# b=int(input("請輸入第二個運算元:"))
# fun1=input('請輸入乙個函式:')
# fun1=eval(fun1)
# print(fun1(a,b))
#氣泡排序
l=[8,6,4,2]
#公升序 降序
#兩兩相比 小靠前
# 外側迴圈n-1
# 內側迴圈n-1-i
for i in range(len(l)-1):
for j in range(len(l)-1-i):
if l[j]>l[j+1]:
l[j],l[j+1]=l[j+1],l[j]
# 插入乙個數,順序保持
# l.insert(3,7) #方法1,知道插入位置時
for i in range(len(l)):
if l[i]>7:
l.insert(i,7)
print(l) #方法2,不知道插入的位置時
#閉包:
# 如果在乙個內部函式裡,對在外部作用域(但不是在全域性)的變數進行引用,那麼
# 內部函式就被認為是閉包,乙個閉包就是你呼叫了乙個函式a,這個函式返回乙個函式
# b給你,這個返回的函式b就叫做閉包,你在呼叫函式a時傳遞的引數就是自由變數
class student:
pass
num=10
def add(self,a):
global num
self.num=15
return self.num+a
s=student()
print(s.add(5))
print(s.num)
#以上是全域性作用域、區域性作用域。下面講閉包
def a():
def b():
return 15
return b
print(a())
print(a().__name__)
print(a()())
# 以上函式b可以稱為閉包
def a():
num=10
def b():
nonlocal num #nonlocal宣告變數位置是閉包
num=num+5
return num
return b
a=a()
print(a())
def funx(x):
def funy(y):
return x*y
return funy
x=funx(5)
ret=x(6)
ret1=x(7)
print(ret)
print(ret1)
#裝飾器:必須用到閉包
# def test(a,b,fun):
# n=fun(a,b)
# return n
# lam=eval(input("請輸入函式:"))
# t=test(10,5,lam)
# print(t)
def outter(fun): #若變成裝飾器,需要有引數
def inner():
print("inner()----")
fun()
return inner
@outter
def index():
print("index()----")
index() #執行順序:找index(),發現上面有@outter,找outter
# 函式,順序走outter,到print列印內容「inner-----",然後順序執行fun(),即呼叫index()
#此時index為outter的引數fun,列印"index()----",完
#例子:學生穿上衣服,帶上筆記本,出門上課,
def waitao(fun):
print("穿上衣服")
return fun
def bijiben(fun):
print('帶上筆記本')
return fun
@bijiben
@waitao
def student():
print('出門上課')
student()
Python基礎學習篇 lambda
python lambda是在python中使用lambda來建立匿名函式,而用def建立的方法是有名稱的,除了從表面上的方法名不一樣外,python lambda還有哪些和def不一樣呢?1 python lambda會建立乙個函式物件,但不會把這個函式物件賦給乙個識別符號,而def則會把函式物件...
Python基礎語法之 Lambda
表示式及定義 lambda arg1 arg2,arg3,argn expression python核心程式設計 從 python核心程式設計 書本中包含了以上lambda表示式的表述。也就是說在lambda右側的式子中,冒號左邊的為引數值,右邊的為計算表示式。例項說明 1.單層引數求和 現在假設...
Python基礎 lambda與filter用法
1.lambda用法。python使用lambda來建立匿名函式。lambda只是乙個表示式,函式體比def簡單很多。lambda的主體是乙個表示式,而不是乙個 塊。僅僅能在lambda表示式中封裝有限的邏輯進去。lambda函式擁有自己的命名空間,且不能訪問自有引數列表之外或全域性命名空間裡的引數...