函式的高階用法

2021-10-04 11:42:37 字數 1627 閱讀 4865

在pyton中,函式與任何其它物件(字串,數字,列表)一致,既可以動態地建立或銷毀,也可以傳遞給其它函式,或者作為值進行返回。

python中的一切皆物件,我們定義的名稱僅僅是與這些物件繫結的識別符號。函式也不例外,它們也是物件,同樣可以被繫結到不同的名稱。

def

add(x,y)

:return x+y

# 輸出 add 的記憶體位址

>>

>add

>

# 將 add 的記憶體位址當作值賦值給變數 f

>>

>f = add

>>

>f

>

# 等同與 add(3,4)

>>

>f(3,

4)7

在python中,將其它函式作為引數的函式成為高階函式,比如: map,filter

下邊我們定義兩個函式: add()-求和 ,subtract()-求差 ,operate()-作為高階函式

# 求和

defadd

(x,y)

:return x+y

# 求差

defsubtract

(x,y)

:return x-y

# 高階函式 ,將函式作為引數

defoperate

(func,x,y)

:return func(x,y)

# 呼叫函式

>>

>operate(add,5,

3)8>>

>operate(subtract,5,

3)2

這樣就可以將函式物件 add 和 subtract 當作 operate() 的引數進行傳遞了,使用起來非常方便!

來看乙個簡單的求和函式

def

outer()

:# 封閉函式

definner

(n):

# 巢狀函式

sum=

0for i in

range(1

, n)

:sum

+= i

return

sumreturn inner # 返回乙個函式物件

當每次呼叫封閉函式時,都會建立乙個巢狀函式的新例項:

>>

> f = outer(

)>>

> f

<

locals

>

.add at 0x000002650b7dadc0

>

>>

> f1 = outer(

)>>

> f1

<

locals

>

.add at 0x000002650b7dae50

>

顯然,f和f1不同,這是因為inner()是在執行outer()期間被定義的,所以第二次的建立對第一次沒有影響。

當呼叫f(n)時,才會真正地計算求和結果:

>>

> f(4)

6>>

> f1(10)

45

函式的用法 CELL函式高階用法,

資料多時看的眼花繚亂,使用聚光燈功能突出顯示當前的行和列,在檢視資料時非常方便,wps是自帶該功能的。選中要設定的資料區域,在 開始 選項卡下點 條件格式 選擇 新建規則 在彈出的 新建格式規則 視窗中選擇 使用公式確定要設定格式的單元格 在 為符合此公式的值設定格式 下輸入公式 or cell r...

sscanf函式的高階用法

大家都知道sscanf是乙個很好用的函式,利用它可以從字串中取出整數 浮點數和字串等等。它的使用方法簡單,特別對於整數和浮點數來說。但新手可能並不知道處理字串時的一些高階用法,這裡做個簡要說明吧。1.常見用法。char str 512 sscanf 123456 s str printf str s...

sscanf函式的高階用法

sscanf與scanf類似,都是用於輸入的,只是後者以螢幕 stdin 為輸入源,前者以固定字串為輸入源。函式原型 int scanf const char format argument 其中的format可以是乙個或多個 type t n 非 符號 注 表示a,b,c中選一,d 表示可以有d也...