python基礎(十一):函數

一、函數存在的意義

函數存在就是解決以下問題的:

  • 程序組織結構不清晰,可讀性差
  • 代碼冗餘
  • 可維護性、可擴展性差

二、定義函數

函數的定義:就相當於事先將函數體代碼保存起來,然後將內存地址賦值給函數名,函數名就是對這段代碼的引用,這和變量的定義是相似的。

定義函數的語法:

def 函數名(參數1,參數2,...):
    """文檔描述"""
    函數體
    returndef: 定義函數的關鍵字;
函數名:函數名指向函數內存地址,是對函數體代碼的引用。函數的命名應該反映出函數的功能;
括號:括號內定義參數,參數是可有可無的,且無需指定參數的類型;
冒號:括號後要加冒號,然後在下一行開始縮進編寫函數體的代碼;
"""文檔描述""": 描述函數功能,參數介紹等信息的文檔,非必要,但是建議加上,從而增強函數的可讀性;
函數體:由語句和表達式組成;
return 值:定義函數的返回值,return是可有可無的。

三、調用函數與函數返回值

函數的使用分爲定義階段與調用階段,定義函數時只檢測語法,不執行函數體代碼,函數名加括號即函數調用,只有調用函數時纔會執行函數體代碼。

#定義階段
def foo():
    print('in the foo')
    bar()

def bar():
    print('in the bar')

#調用階段
foo()

執行此程序文件時,將該文件從硬盤加載進內存,將函數體的內存地址賦值給函數名。

若需要將函數體代碼執行的結果返回給調用者,則需要用到return。return後無值或直接省略return,則默認返回None,return的返回值無類型限制,且可以將多個返回值放到一個元組內。

>>> def test(x,y,z):
...     return x,y,z #等同於return (x,y,z)
... 
>>> res=test(1,2,3)
>>> print(res)
(1, 2, 3)

返回逗號隔開的多個值,就是返回一個元組,我們要知道,元組就是可以這樣寫的x,y,z,不用加括號。

return是一個函數結束的標誌,函數內可以有多個return,但只執行一次函數就結束了,並把return後定義的值作爲本次調用的結果返回,return後面的語句是永遠都執行不到

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章