函式是組織好的,可重複使用的,用來實現單一,或相關聯功能的**段。
定義乙個函式
你可以定義乙個由自己想要功能的函式,以下是簡單的規則:
任何傳入引數和自變數必須放在圓括號中間,圓括號之間可以用於定義參 數。
函式的第一行語句可以選擇性地使用文件字串—用於存放函式說明。
函式內容以冒號起始,並且縮排。
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...