python中函式與函數語言程式設計(一)
阿新 • • 發佈:2018-11-23
在學習之前,我們先去區分面對物件、面對過程、函數語言程式設計他們之間的區別,從改圖可以看出,他們之間不是完全相同的,也不是沒有任何相同點的
1.函式和過程的基本認識
def func1(): """testing1""" print('in the func1') return 0 # 這是一個函式 def func2(): """testing2""" print('in the func2') # 這是一個過程 x = func1() y = func2() # 說白了,過程就是沒有返回值的函式而已 print('from func1 return is %s' %x) # 注意這邊的萬用字元的是使用方法 print('from func1 return is %s' %y)
ps:此處一定要多看註釋,注意區分好函式與過程之間的關係:過程沒有返回值,函式有返回值,所以說白了,過程就是沒有返回值的函式而已
2.函式的特性
(1)減少重複程式碼
(2)使程式變的可擴充套件
(3)使程式變得易維護
# 函式 有一段可以複用的程式,一定要定義成函式,簡潔 def logger(): with open('a.txt','a+') as f: # 開啟檔案,以二進位制追加的方式,沒有的話就建立 f.write('end action\n') # 寫入一些內容 # 下面三個都是過程 def test1(): print('test1 starting action...') logger() # 呼叫logger()函式 def test2(): print('test2 starting action...') logger() # 呼叫logger()函式 def test3(): print('test3 starting action...') logger() # 呼叫logger()函式
3.匯入time模組
第三部分主要是匯入了time模組,其餘和2一樣。
import time def logger(): time_format = '%y-%m-%d %x' time_current = time.strftime(time_format) with open('a.txt','a+') as f: f.write('%s end action\n' %time_current) # 下面三個都是過程 def test1(): print('test1 starting action...') logger() # 呼叫logger()函式 def test2(): print('test2 starting action...') logger() # 呼叫logger()函式 def test3(): print('test3 starting action...') logger() # 呼叫logger()函式
匯入了時間模組,注意時間模組的使用方法,並在結果中顯示出來時間
函數語言程式設計簡單介紹(與python關係不大)
概念:函式是Python內建支援的一種封裝,我們通過把大段程式碼拆成函式,通過一層一層的函式呼叫,就可以把複雜任務分解成簡單的任務,這種分解可以稱之為面向過程的程式設計。函式就是面向過程的程式設計的基本單元。
Python對函數語言程式設計提供部分支援。由於Python允許使用變數,因此,Python不是純函數語言程式設計語言。
舉例來說:
(1 + 2) * 3 - 4
傳統的程序式程式設計,可能這樣寫:
var a = 1 + 2;
var b = a * 3;
var c = b - 4;
函數語言程式設計要求使用函式,我們可以把運算過程定義為不同的函式,然後寫成下面這樣:
var result = subtract(multiply(add(1,2), 3), 4);
這段程式碼再演進以下,可以變成這樣:
add(1,2).multiply(3).subtract(4)
這基本就是自然語言的表達了。再看下面的程式碼,大家應該一眼就能明白它的意思吧:
merge([1,2],[3,4]).sort().search("2")
因此,函數語言程式設計的程式碼更容易理解。
要想學好函數語言程式設計,不要玩py,玩Erlang,Haskell, 好了,我只會這麼多了。。。