函式式程式設計 檔案操作

2021-10-10 10:45:14 字數 4081 閱讀 7424

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

1.定義和使用

def 函式名名(引數1

,引數2,.

..):

函式體return 返回結果!

變數名 = 函式名(值1

,值2,..

..)#值和引數個數一一對應!

實現兩個數的,四則運算

# 函式1

defdemo1

(a,b)

:print

(f'結果為'

)#函式2

defdemo2

(a,b)

:return a+b

jieguo = demo2(3,

4)print

(jieguo+10)

#或:result = demo2(3,

4)+10

## 函式3:

defdemo3

(a,b,fuhao)

: result =

0if fuhao==

"+":

result = a+b

elif fuhao==

'-':

result=a-b

elif fuhao==

'*' result = a*b

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.解包裹

# 拆分元祖

defdemo

(a,b,c)

pass

args=(1

,2,3

)demo(

*args)

==>自動把元祖拆分為 a,b,c 三個變數

# 拆分字典

defdemo

(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

deffn2

(fn1)

:print

(fn1())

fn2(fn1(3,

4))==

=>

#相當於 fn2("7")

6.lambda函式

匿名函式!就是沒有名字的函式!
# 定義求兩個數的和

deffn1

(a,b)

reutrn a+b

# 簡寫

fn2 =

lambda a, b: a + b # 方法體只能有1行表示式!

print

(fn2(3,4))

7.map函式 列表中的每個值都執行某個函式!

fn1=

lambda x: x*

2jieguo =

map(fn1,[1

,2,3

])# 會自動把1,2,3三個值都乘以2

8.filter函式 列表中每個元素的值都執行某個函式,只保留為true的

fn1=

lambda x: x%

2jieguo =

filter

(fn1,[1

,2,3

,4,5

])# 會自動把1,2,3三個值都乘以2

print

(jieguo)

# 1,3,5 # 只保留

10.函式中變數作用域

內部函式自動執行外部函式!

特點: 裝飾器優先於函式先執行!

作用:經常用於給某個函式實現功能擴充套件! 實現:不該原來**,的情況下,新增額外功能!

裝飾器可以寫多個!

#擴充套件的驗證功能

defcheck_login

(func)

:print

('開始驗證是否登陸.........'

)def

inner

(name)

:print

('各種判斷,從sessin中獲取'

)if name==

'admin'

:print

('登陸成功,可以看購物車'

)else

:print

('請先登陸,跳轉到的呢牢固'

) func(name)

return inner

'''擴充套件: 不修改原**!擴充套件驗證name是否登陸!'''

@check_login

defgouwueche

(name)

:print

(f'檢視購物資訊'

)

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

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

函式式程式設計 基礎操作符

終端操作符 foreach slf4j public class basicoperatortests private listuserlist beforeeach void setup test public void foreachstream findfirst 第乙個物件 test pub...

函式式程式設計

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