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

2021-10-03 05:27:08 字數 3293 閱讀 4733

1.函式是完成某個特定功能的一組語句,是標準的**塊

這段**是用來解決乙個問題或一類問題。

2.函式是功能,解決某乙個問題的乙個過程。

將乙個大過程(目標)分解成 n 個小過程。如沒有函式,完成任務可能需要很多的**。這時我們就可以把完成特定功能的**塊放到乙個函式裡,直接呼叫或者復用函式。

編寫**的過程中都避免編寫重複**的操作,這時候會將有可能重複的**封裝起來並命名,當用到這個名字時,即是呼叫這段**,就省了重複輸入大量**的麻煩。

def

fun_name

([引數列表]):

#def function 函式名

#此時要注意函式名稱定義和變數的命名規則保持一致

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

#引數列表可以沒有,也可以有多個

#函式內容以冒號開始,並且縮排

函式** #由一行或者多行完成特定功能**組成

return

#結束函式,不帶表示式的return相當於返回none

>>

>

help()

#利用help(function_name) 檢視函式的幫助資訊

help on built-

in function abd in module builyins:

abs(x,/)

return the absolute value of the arguement.

>>

>

分類可以通過三種方式來分類:

1.通過判斷有無引數進行分類

意義:隨著**量的增加,函式定義者和函式的呼叫者不一定是同乙個人,進行分類會簡化操作。

2.通過判斷有無返回值進行分類

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

3.通過定義者來分類

將這第一和第二種分類分別組合起來:

1.有參函式,有返回值:

>>

>

def test1(x, y)

:>>

> c = x + y

>>

>

return

(c)>>

>b = test1(3,

4)>>

>

print

(b)結果為:7

2.有參函式,無返回值:

>>

>

def test2(x, y)

:>>

> c = x + y

>>

>

print

(c)>>

>test2(2,

1)結果為:3

3.無參函式,有返回值:

>>

>

def test3():

>>

> a,b =3,

4>>

> c = a + b

>>

>

return

(c)>>

>d = test(3)

>>

>

print

(d)結果為:7

4.無參函式,無返回值:

這類函式不需要傳入函式,也不需要返回值,呼叫這類函式的時候直接就輸出結果。

1.全域性變數

含義:在函式外定義的變數。

範圍:即在乙個函式內部定義的變數,只在本函式範圍內有效。

1.1如何在函式中使用全域性變數?

一定要宣告 global 全域性變數。

不要將全域性變數的使用和傳參當成一回事!

2.區域性變數

含義:在函式內定義的變數。

範圍:即從定義變數的位置到本原始檔結束都有效。 

函式內部會優先使用區域性變數再使用全域性變數。

呼叫函式也就是執行函式,在記憶體中函式的呼叫叫做壓棧彈棧。等函式執行完成後,函式就立刻出棧。

函式呼叫的基本格式如下:

[返回值]

= 函式名(

[形參]

)#形参指的是當初建立函式時要求傳入的各個形參的值

#如果該函式有返回值,我們可以通過乙個變數來接收,當然也可以不接收。

注意:

建立函式有多少個形參,那麼呼叫時就需要傳入多少個值,且順序必須和建立函式時一致。

即使該函式沒有引數,函式名後的小括號不能省略。

解釋性的語言**是從上而下執行的。

python中的變數是沒有型別的,但變數是可以指向任何物件的,而物件才是有型別的。

python中的物件有可變物件(number,string,tuple等)和不可變物件之分(list,dict等)。 區別可戳這篇文章,python入門——四大容器解析

1.值傳遞

如果你傳入的引數物件是不可變的物件:數字,元組,字串,這個時候就是值傳遞。那麼源物件是不會改變的。(被調函式新開闢記憶體空間存放的是實參的副本值)

2.引用傳遞意義:當函式引數特別多的時候,為了解決呼叫時傳參麻煩。python函式預設值的使用可以在函式呼叫時寫**提供方便,很多時候我們只要使用預設值就可以了。使用類時能夠方便的建立類,而不需要傳遞一堆引數。

函式自身呼叫自身,叫做遞迴。

遞迴必須有終止條件,否則是乙個死迴圈。

>>

>

lambda

[引數1

, 引數2..

. n]

:語句》

>

lambda x,y:x + y

>>

>

def add(x, y)

:>>

>

return x + y

注意:

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

人生苦短,我用python。

python函式的學習還比較淺顯,今天就先寫到這裡。

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

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

函式專題 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...