程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python 函數

編輯:Python


簡述

一般意義上,函數是編程語言中的結構化元素,用於對語句進行分組,這樣便可以在程序中多次使用。倘若沒有函數,實現這一目標的唯一方法是:通過復制代碼,並將其改編為不同的上下文來重用。

使用函數,有很多好處:

  • 有助於將程序分解成更小的塊(模塊化)
  • 提高程序的可理解性和質量
  • 避免重復並使代碼可重用
  • 降低了軟件開發和維護的成本
    ……

尤其是隨著程序越來越大,函數的作用會更加顯著,不僅讓程序更有條理,而且更便於管理。

| 版權聲明:一去、二三裡,未經博主允許不得轉載。

函數定義

在 Python 中,函數由 ​​def​​ 語句定義,一般的語法格式如下所示:

def function_name(parameters):

"""docstring"""
  • 1.
  • 2.

以上函數定義,由以下部分組成:

  • 關鍵字​​def​​:標志著函數頭的開始
  • 函數名(​​function_name​​):唯一標識一個函數,函數命名遵循標識符的編寫規則。
  • 參數(​​parameters​​):通過它可以將值傳遞給函數,是可選的。
  • 冒號(​​:​​):用於標記函數頭的結尾。
  • 文檔字符串(docstring):用於描述函數的功能,是可選的。
  • 函數體:由一個或多個有效的 python 語句構成,語句必須具有相同的縮進級別(通常為 4 個空格)。
  • ​return​​ 語句:用於從函數返回一個值,可選的。

例如,定義一個函數,用於計算數字的平方:

>>> def square(x):

... return x**2
...
  • 1.
  • 2.
  • 3.

函數調用

一旦函數被定義,便可以從另一個程序、函數、甚至是 Python shell 中調用它。

要調用函數,只需鍵入函數名稱,以及適當的參數。

>>> square(3)

9
>>>
>>> square(6)
36
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

docstring

函數頭後的第一個字符串稱為 docstring(文檔字符串 - documentation string 的縮寫),用於簡單地解釋函數的功能,可以使用 ​​function_name.__doc__​​ 來訪問。

>>> def square(x):

... """return square of given number"""
... return x**2
...
>>>
>>> print(square.__doc__)
return
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

PS: docstring 是接口設計的重要部分,雖然是可選的,但應盡量養成使用它的習慣。

return 語句

return 語句用於退出函數,並將結果(即:return 關鍵字之後的表達式的值)返回給調用者。

如果函數中沒有 return 語句,則當控制流到達函數體的末尾時,函數結束。

語法格式:

return

  • 1.

返回一個值

在上述示例中,函數 square() 使用了一個 return 語句。調用該函數,return 之後的表達式的值將被返回。

>>> val = square(3)

>>> val
9
  • 1.
  • 2.
  • 3.

返回 None

但是,如果沒有明確地給出 return 語句,那麼將返回什麼?讓我們來看看:

>>> def square(x):

... y = x**2
...
>>>
>>> val = square(3)
>>> print(val)
None
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

調用函數,將打印 None,即無 return 語句的函數返回特殊值 None。

如果函數只有一個 return,而沒有表達式,那麼也將返回 None:

>>> def square(x):

... y = x**2
... return
...
>>> val = square(3)
>>> print(val)
None
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

返回多個值

一個函數只能返回一個值,或者更應該說是一個對象。對象可以是一個數值(整數或浮點數),也可以是列表或字典。所以,如果要返回 2 個整數值,可以返回一個列表或一個包含這 2 個整數值的元組。這意味著,可以間接返回多個值。

例如,計算一個序列的最大值和最小值:

>>> def max_min(seq):

... max_val = max(seq)
... min_val = min(seq)
... return max_val, min_val
...
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

返回值通過拆包立即存儲到變量 max_val 和 min_val 中:

>>> l = [1, 3, 5, 7, 9]

>>> max_val, min_val = max_min(l)
>>> max_val
9
>>>
>>> min_val
1
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

返回多個值只不過是一種假象,函數返回的仍然是單一值:

>>> val = max_min(l)

>>> val
(9, 1)
  • 1.
  • 2.
  • 3.

沒錯,就是 tuple!在語法上,返回一個 tuple 可以省略括號,並可以同時由多個變量接收,按位置賦予相應的值。

所以,Python 的函數返回多個值其實就是返回一個 tuple,只不過寫起來更方便而已。



  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved