1. 程式人生 > >編程方法論與三個重要函數

編程方法論與三個重要函數

spa 自己 tools rom 正常 zha 面向 wan 多個

1.方法論:面向對象編程

     面向過程編程:將一個大步驟分解為許多個小步驟,一步一步解決

     函數式編程:數學式與編程式,強調簡潔性,一步解決

 1 #面向對象:
 2 def test(x):
 3     a = x+1
 4     b = a**2
 5     return b
 6 print(test(10))
 7 #函數式編程:
 8 def test(x):
 9     return (x+1)**2
10 print(test(10))

2.map()函數:對輸入叠代對象逐一進行操作在生成叠代器

 1 list_1 = [1,23,134,111]
 2
def test_1(x): 3 x**=2 4 return x 5 def test(func,array): 6 new_list=[] 7 for item in array: 8 a = func(item) 9 new_list.append(a) 10 return new_list 11 print(test(test_1,list_1)) 12 print(test(lambda x:x**2,list_1)) 13 (print(list(map(lambda x:x**2,list_1))) #三個打印結果一樣
 1 list_2 = [a,b,c,d]
 2 def test_2(x):
 3     x = x+_sb
 4     return x
 5 def test(func,array):
 6     new_list = []
 7     for item in array:
 8         new_list.append(func(item))
 9     return new_list
10 print(test(test_2,list_2))
11 print(test(lambda x:x+_sb,list_2))
12print(list(
map(lambda x:x+_sb,list_2)))

3.filter()函數:通過布爾值的判斷來確定過濾出的可叠代對象中的元素(True時打印出)

1 list_3 = [Mr.Li,Mrs.Wang,Mr.Liu,Mrs.Zhang]
2 filter(lambda x:not x.startswith(Mrs),list_3) #<filter object at 0x00000000026B63C8> 表示為叠代器,需要用列表來表示出來
3 print(filter(lambda x:not x.startswith(Mrs),list_3)) #無打印結果
4 print(list(filter(lambda x:not x.startswith(Mrs),list_3)))#正常結果

4.reduce()函數:對所輸入可叠代對象進行合並

1 from functools import reduce #需要從模塊中導入函數
2 list_4 = [12,11,10]
3 print(reduce(lambda x,y:x+y,list_4))
4 print(reduce(lambda x,y:x+y,list_4,100)) #第三個參數可以自己設定,為加入計算的初始值

編程方法論與三個重要函數