函式式程式設計

2022-07-09 15:15:10 字數 2072 閱讀 8951

函式式程式設計

函式定義和使用

函式:程式中可以復用的**塊

1.定義和使用

def 函式名名(引數1,引數2,...):

函式體return 返回結果!

變數名 = 函式名(值1,值2,....) #值和引數個數一一對應!

·函式呼叫時值和引數個數必須一一對應

·函式返回結果關鍵字:return

·呼叫帶返回結果的函式時,會返回乙個結果

·一般都會定義乙個變數接受返回結果

·也可以直接當成值被使用

2.案例演示

實現兩個數的,四則運算

·函式1:實現求任意兩個數的和

·函式2:實現求任意兩個數的和,在結果基礎上再加10

·函式3:實現求任意兩個數的四則運算,並判斷結果是否為偶數

函式1def demo1(a,b):

print(f'結果為')

函式2def demo2(a,b):

return a+b

jieguo = demo2(3,4)

print(jieguo+10)

或:result = demo2(3,4)+ 10 #

函式3:

def demo3(a,b,fuhao):

result = 0

if fuhao"+":

result = a+b

elif fuhao'-':

result=a-b

elif fuhao''

result = ab

elif fuhao'/':

result = a/b

return result

demo3(10,2,'/') # 執行了一遍! 結果未儲存!

jieguo = demo3(10,2,'/')

if jieguo % 2==0:

print('偶數')

else:

print('奇數')

函式特性

1.引數預設值

def demo3(a,b,fuhao="+"):

pass

demo3(3,4) # 可只傳遞兩個變數! 符號有預設值!

2.可變引數args接收任意的元組

def demo3(args): # 接受元祖

pass

a = (1,2,3) #元祖

demo3(a)

3.可變引數kwargs接收任意的字典

def demo3(kwargs): # 接受字典!

pass

a = #字典

demo3(a)

4.解包裹

拆分元祖

def demo(a,b,c)

pass

args= (1,2,3)

demo(*args) ==>自動把元祖拆分為 a,b,c 三個變數

拆分字典

def demo(a,b,c)

pass

kwargs=

demo(**args) >自動把元祖拆分為 a,b,c 三個變數, 結果: aaa,bbb,ccc

4.遞迴

函式內部,自己呼叫自己

注意:一定要有出口

·求累加,階乘

def leijia(n):

if n <=1:

return 1 #函式遇到reutrn 表示結束了!

return n + leijia(n-1)

呼叫print(leijia(100)) #結果 5050

·面試題:使用遞迴讀取某個目錄下的所有檔案

判斷條件 是否為目錄,不是目錄就退出

5.函式引數為另乙個函式(相當於使用函式的結果)

def fn1(a,b):

return a+b

def fn2(fn1):

print(fn1())

fn2(fn1(3,4))=> #相當於 fn2("7")

6.lambda函式

匿名函式,就是沒有名字的函式

·lambda引數1,引數2...:表示式

定義求兩個數的和

def fn1(a,b)

reutrn a+b

函式式程式語言python 函式式程式設計

函式是python內建支援的一種封裝,我們通過把大段 拆成函式,通過一層一層的函式呼叫,就可以把複雜任務分解成簡單的任務,這種分解可以稱之為面向過程的程式設計。函式就是面向過程的程式設計的基本單元。而函式式程式設計 請注意多了乙個 式 字 functional programming,雖然也可以歸結...

函式式程式設計

最近在看一些關於js方面的東東,除了些ajax的基本應用,還了解了些函式式程式設計 fp 的東東。雖然以前也玩過幾天lisp的,不過因為當時完全對fp的東西沒有概念,壓根就不知道原來這是list那一族最大的特性之一 另外我知道的還有個是gc,orz.光注意那些詭異的 表 去了。總結一下,傳統上認為f...

函式式程式設計

維基百科 函式式程式設計 英語 functional programming 或者函式程式設計,又稱泛函程式設計,是一種程式設計范型,它將計算機運算視為數學上的函式計算,並且避免使用程式狀態以及易變物件。函式程式語言最重要的基礎是 演算 lambda calculus 而且 演算的函式可以接受函式當...