Python語言的高階特性

2022-08-05 08:48:09 字數 1694 閱讀 2259

python函式式程式設計只是借鑑函式式程式設計的一些特點,可以理解成一半函式一半python

需要講述:

存在問題:

用法:

計算乙個數字的100倍數

stm = lambda x: 100 *x

print(stm(

89))

結果:8900

多個引數

stm2 = lambda x,y,z,:x + y * 10 + z * 100

print(stm2(

4,5,6

))結果:

654

變數可以賦值

a = 100

b = a

函式名稱就是乙個變數

def funa():

print(

"in funa")

funb =funa

funb()

以上**得出結論:

#高階函式舉例

#funa是普通函式,返回乙個傳入數字的100倍數字

def funa(n):

return n * 100

# 再寫乙個函式,把傳入引數乘以300倍

def funb(n):

#最終返回300n

return funa(n) *3

print(funb(9))

#寫乙個高階函式

def func(n,f):

#假定函式是把n擴大100倍

return f(n) * 3

print(func(

9,funa))

#map 舉例

#有乙個列表,想對列表裡的每個元素乘以10

l1 = [ i for i in range(10

)]l2 =

for i in

l1:)

print(l2)

或高階函式

def multen(n):

return n*10

l3 =map(multen,l1)

for i in

l3: print(i,end="

")

reduce

歸併,縮減

把乙個可迭代物件最後歸併成乙個結果

對於函式引數的函式要求:必須由兩個引數,必須由返回結果

reduce([

1,2,3,4,5]) == f(f(f(f(1,2),3),4),5

) reduce 需要匯入functools包

from

functools import reduce

def myadd(x,y):

return x +y

rst = reduce(myadd,[1,2,3,4,5

,])print(rst)

結果:15

def isrven(a):

return a % 2 == 0

l = [1,2,3,4,5,6,7,8,9,10

]rst =filter(isrven,l)

print(rst)print([ifor i in rst])

Python高階特性

l csx sarah tracy bob jack print l 0 l 1 l 2 輸出 csx sarah tracy l 0 3 輸出 csx sarah tracy 如果第乙個索引是0,還可以省略 print l 2 輸出 bob jack print l 2 1 輸出 bob d fo...

Python高階特性

python 高階特性 from collections import iterable from collections import iterator 切片 list切片 l list range 100 print l 0 3 取前3個元素 print l 3 取前3個元素 print l 4...

Python高階特性

切片 slice 非常靈活,體現了python的簡便性 1.取乙個list和tuple的部分元素時的簡化操作 l michael sarah tracy bob jack l 0 3 michael sarah tracy 從0開始不包括3,第乙個索引是0可省略,也支援負數按倒數的順序取值,什麼都不...