Python函式專題 函式的基本概念

2021-10-03 04:39:14 字數 2115 閱讀 9134

函式是組織好的,可重複使用的,用來實現單一,或相關聯功能的**段。

定義乙個函式

你可以定義乙個由自己想要功能的函式,以下是簡單的規則:

任何傳入引數和自變數必須放在圓括號中間,圓括號之間可以用於定義參 數。

函式的第一行語句可以選擇性地使用文件字串—用於存放函式說明。

函式內容以冒號起始,並且縮排。

return [表示式] 結束函式,選擇性地返回乙個值給呼叫方。不帶表示式的 return相當於返回 none。

函式能提高應用的模組性,和**的重複利用率

函式的分類

|-- 講分類,一定要提標準

|-- 通過有無引數

|-- 有參函式

|-- 無參函式

將來的**,我們函式定義者和函式的呼叫者不一定是乙個人

|-- 有無返回值

|-- 有返回值的

|-- 無返回值的

如果函式執行完成,需要將某個結果給呼叫者 return 結果

格式:python 定義函式使用 def 關鍵字,一般格式如下:

def 函式名(引數列表):

函式體全域性變數和區域性變數:全域性流程下定義的變數以及函式體內部定義的變數

在記憶體中函式的呼叫

1、解釋性的語言**是從上而下執行的!!!

2、函式的呼叫過程

函式的呼叫過程,叫做壓棧,等函式執行完成後,函式就立刻出棧(彈棧)

3、在函式中使用全域性變數問題

在python中,函式如果修改全域性變數,一定要宣告

global 全域性變數

4、值傳遞和引用傳遞問題

引數
以下是呼叫函式時可使用的正式引數型別:

預設值引數:呼叫函式時,如果沒有傳遞引數,則會使用預設引數,在函式的引數括號內預設給定的

命名引數(關鍵字):傳入的引數類似這種name="runoob" 賦值命名類的引數

可變引數(不定長):分為*args 接受多餘的變數預設存在元組中 **args接受多餘的命名引數預設存在字典裡

萬能引數:一般引數後面加*args **kwargs來接受全部引數

函式遞迴
函式遞迴:

遞迴函式的優點:定義簡單,邏輯清晰。理論上,所有的遞迴函式都可以寫成迴圈的方式,但迴圈的邏輯不如遞迴清晰。

遞迴函式的缺點:使用遞迴函式需要注意防止棧溢位。在計算機中,函式呼叫是通過棧(stack)這種資料結構實現的,每當進入乙個函式呼叫,棧就會加一層棧幀,每當函式返回,棧就會減一層棧幀。由於棧的大小不是無限的,所以,遞迴呼叫的次數過多,會導致棧溢位。

例子:def sum(n):

if n > 0:

return n + sum_recu(n - 1)    #呼叫函式自身

else:

return 0

print("遞迴疊加-->",sum(100))

#實現的效果是:5050

匿名函式
python 使用 lambda 來建立匿名函式。

所謂匿名,意即不再使用 def 語句這樣標準的形式定義乙個函式。

lambda 只是乙個表示式,函式體比 def 簡單很多。

lambda的主體是乙個表示式,而不是乙個**塊。僅僅能在lambda表示式中 封裝有限的邏輯進去。

lambda 函式擁有自己的命名空間,且不能訪問自己引數列表之外或全域性命名空間裡的引數。

雖然lambda函式看起來只能寫一行,卻不等同於c或c++的內聯函式,後者的目的是呼叫小函式時不占用棧記憶體從而增加執行

語句:lambda [引數1, 引數2... n]:語句

lambda x,y:x + y === def add(x, y):

return x + y

注意:在python,lambda雖然簡化了**書寫,增強了**維護成本,**的可讀性下降了

return語句
return [表示式] 語句用於退出函式,選擇性地向呼叫方返回乙個表示式。不帶引數值的return語句返回none
全域性函式
檢視python的所有全域性函式

>>> import builtins

>>> dir(builtins)

Python函式專題 函式的基本概念

1.函式是完成某個特定功能的一組語句,是標準的 塊。這段 是用來解決乙個問題或一類問題。2.函式是功能,解決某乙個問題的乙個過程。將乙個大過程 目標 分解成 n 個小過程。如沒有函式,完成任務可能需要很多的 這時我們就可以把完成特定功能的 塊放到乙個函式裡,直接呼叫或者復用函式。編寫 的過程中都避免...

函式專題 CASE WHEN

case when 語句 一 概述 1.這個語句使用起來像decode函式加強版,9i之後的多重條件分支語句,decode配合例如sign類似的函式也能達到case when的效果,但是case when效率更高,需要注意的是,每個值返回的型別需要一致。2.case語句可以實現if語句的功能。3.c...

函式專題(簡介)

函式專題 簡介 一 引入 在數學中有表示關係函式 f x f x 中的 x 是自變數 f x 的值是因變數.例1 f x x y 二 概述 在c語言中,f x 同樣表示關係函式,x就是傳入的值,若x 1,那麼在例1中f x f 1 1 y 那麼1 y的結果就是返回值。三 說明 1.乙個源程式檔案 c...