函式相關總結

2022-05-17 10:10:41 字數 3348 閱讀 9270

1.   python中函式定義方法:  

def test(x):

"the function definitions"

x+=1

return x        

def:定義函式的關鍵字

test:函式名

():內可定義形參

"":文件描述(非必要,但是強烈建議為你的函式新增描述資訊)

x+=1:泛指**塊或程式處理邏輯

return:定義返回值

返回值數=0:返回none

返回值數=1:返回object

返回值數》1:返回tuple

2引數

1.引數的分別:實參(實際的要交給函式的內容)和形參(定義函式的時候它只是乙個形式,只是乙個變數的名)

2.引數可以傳遞多個,多個引數之間用逗號分割。

3.位置引數

站在實參角度:1.按照位置傳值2.按照關鍵字傳值3.位置、關鍵字形式混著用

站在形參角度:位置引數必須傳值

4.動態引數 :*args  **kwargs

5.注意引數混合用的順序

位置引數》*args>預設引數》**kwargs

3區域性變數和全域性變數

在子程式中定義的變數稱為區域性變數,在程式的一開始定義的變數稱為全域性變數。

全域性變數作用域是整個程式,區域性變數作用域是定義該變數的子程式。

當全域性變數與區域性變數同名時:

在定義區域性變數的子程式內,區域性變數起作用;在其它地方全域性變數起作用。

python中的閉包從表現形式上定義(解釋)為:如果在乙個內部函式裡,對在外部作用域(但不是在全域性作用域)的變數進行引用,那麼內部函式就被認為是閉包。

deffoo():

...     m=0

...deffoo1():

...         m=1

...printm

...

...printm

...     foo1()

...printm

...

>>> foo()

0

1

0

裝飾器=高階函式+函式巢狀+閉包

6迭代器

l=[1,2,3]

index=0

whileindex <len(l):

print(l[index])

index+=1

乙個包含yield關鍵字的函式就是乙個生成器函式。yield可以為我們從函式中返回值,但是yield又不同於return,return的執行意味著程式的結束,呼叫生成器函式不會得到返回的具體的值,而是得到乙個可迭代的物件。每一次獲取這個可迭代物件的值,就能推動函式的執行,獲取新的返回值。直到函式執行結束。

關於next和send分析:

對於普通的生成器,第乙個next呼叫,相當於啟動生成器,會從生成器函式的第一行**開始執行,直到第一次執行完yield語句(第4行)後,跳出生成器函式。

然後第二個next呼叫,進入生成器函式後,從yield語句的下一句語句(第5行)開始執行,然後重新執行到yield語句,執行後,跳出生成器函式,後面再次呼叫next,依次類推。

r='here'

foriinxrange(3):

yieldr

r='200 ok'+str(i)

c=consumer()

n1=c.next()

n2=c.next()

n3=c.next()

了解了next()如何讓包含yield的函式執行後,我們再來看另外乙個非常重要的函式send(msg)。其實next()和send()在一定意義上作用是相似的,區別是send()可以傳遞yield表示式的值進去,而next()不能傳遞特定的值,只能傳遞none進去。因此,我們可以看做c.next() 和 c.send(none) 作用是一樣的。

需要提醒的是,第一次呼叫時,請使用next()語句或是send(none),不能使用send傳送乙個非none的值,否則會出錯的,因為沒有pythonyield語句來接收這個值。

函式相關課業總結(1)

首先,讓我們來看一下函式定義的語法形式 資料型別函式名 形式參數列 通過以往的學習,我們對於函式的認知僅僅侷限於主函式,運用複雜冗長的主函式來實現相關操作,這樣大大增加了使用空間和時間,經常會出現除錯不通而找不到錯誤在哪的情況,而且寫出來的程式也不美觀。但如果我們將乙個程式拆分,每個函式實現特定的功...

oracle相關總結3 常用函式

1 字串函式 length 字元長度 lentthb 位元組長度 乙個漢字記憶體中占用 2位元組 ltrim rtrim trim 2 截串 substr 表示式,位置,長度 oracle 無左右取串函式,但可以使用變通方式完成。左取串 substr abcdefg 1,3 右取串 substr a...

關於檔案相關的函式總結

file fopen const char fname const char mode fname要開啟的檔名 mode指示檔案的開啟模式 fopen 返回值型別是檔案型別指標int fclose file fp 檔案關閉成功,則返回0,否則返回 1 fclose 可以把緩衝區內的剩餘資料輸出到磁碟...