python之def函數


python之def函數

如果我們用代碼實現了一個小功能,但想要在程序代碼中重復使用,不能在代碼中到處粘貼這些代碼,

因為這樣做違反 了軟件工程中 DRY原則。 Python 提供了 函數功能,

可以將我們這部分功能抽象成一個函數以方便程序調用,或者提供給其他模塊使用。

 

#基本使用

1 def function_name(parameters):
2     expressions

Python 使用 def 開始函數定義,緊接着是函數名,括號內部為函數的參數,內部為函數的 具體功能實現代碼,如果想要函數有返回值, 在 expressions 中的邏輯代碼中用 return 返回。

#實例

1 def function():
2     print('This is a function')
3     a = 1+2
4     print(a)

上面我們定義了一個名字為 function 的函數,函數沒有不接受參數,所以括號內部為空,緊接着就是 函數的功能代碼。如果執行該腳本,發現並沒有輸出任何輸出,因為我們只定義了函數,而並沒有執行函數。 這時我們在 Python 命令提示符中輸入函數調用 function(), 注意這里調用函數的括號不能省略。那么 函數內部的功能代碼將會執行,輸出結果:

1 This is a function
2 3

如果我們想要在腳本中調用的腳本,只需要在腳本中最后添加函數調用語句

1 function()

那么在執行腳本的時候,將會執行函數。

 

 

def函數參數

我們在使用的調用函數的時候,想要指定一些變量的值在函數中使用,那么這些變量就是函數的參數,函數調用的時候, 傳入即可。

 

#基本使用

1 def function_name(parameters):
2     expressions

parameters 的位置就是函數的參數,在調用的時候傳入即可。

#實例

1 def func(a, b):
2     c = a+b
3     print('the c is ', c)

在這里定義的一個函數,其參數就是兩個數值,函數的功能就是把兩個參數加起來。運行腳本后,在 Python 提示符內調用函數 func, 如果不指定參數 func(), 那么將會出錯; 輸出 func(1, 2),將 a=1, b=2 傳入函數,輸出 the c is 3 。所以在調用函數時候,參數個數和位置一定要按照函數定義。如果我們忘記了函數的參數的位置,只知道各個參數的名字,可以在 函數調用的過程中給指明特定的參數 func(a=1, b=2), 這樣的話,參數的位置將不受影響,所以 func(b=2,a=1)是同樣的 的效果。

 

def函數默認參數

我們在定義函數時有時候有些參數在大部分情況下是相同的,只不過為了提高函數的適用性,提供了一些備選的參數, 為了方便函數調用,我們可以將這些參數設置為默認參數,那么該參數在函數調用過程中可以不需要明確給出。

 

#基本使用

1 def function_name(para_1,...,para_n=defau_n,..., para_m=defau_m):
2     expressions

函數聲明只需要在需要默認參數的地方用 = 號給定即可, 但是要注意所有的默認參數都不能出現在非默認參數的前面。

#實例

1 def sale_car(price, color='red', brand='carmy', is_second_hand=True):
2     print('price', price,
3           'color', color,
4           'brand', brand,
5           'is_second_hand', is_second_hand,)

在這里定義了一個 sale_car 函數,參數為車的屬性,但除了 price 之外,像 color, brandis_second_hand 都是有默認值的,如果我們調用函數 sale_car(1000), 那么與 sale_car(1000, 'red', 'carmy', True) 是一樣的效果。當然也可以在函數調用過程中傳入特定的參數用來修改默認參數。通過默認參數可以減輕我們函數調用的復雜度。

形參、實參與局部變量、全局變量的關系。

​答:首先明確,變量是一個更大的范圍。

所有的形參都是局部變量,所有的實參都是全局變量。用集合的角度來說,就是形參是局部變量的子集,實參是全局變量的子集。

這里解釋一下為什么形參都是局部變量。

形參是局部變量,全局變量在程序開始時創建並分配空間,在程序結束時候釋放內存並銷毀,局部變量是在函數調用的時候創建,在函數調用結束后銷毀並釋放,形參在函數調用時才分配空間,在函數調用后釋放,所以是局部變量。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM