第五週

shangaxn發表於2024-08-03

學習筆記(6)

第七章 函式

函式的概念:函式可以理解為實現某種功能的程式碼塊,這樣的程式中需要這個功能時就可以直接呼叫,而不必每次都編寫一次。
在程式中,如果需要多次輸入“拼搏到無能為力,堅持到感動自己”則可以將這個功能寫成函式,具體示例如下:

def output():
    print('拼搏到無能為力,堅持到感動自己')

python中函式分為內建函式和自定義函式。內建函式是python自帶的,既可以直接使用,如print()函式、input()函式等。常見的內建函式如下:
在這裡插入圖片描述
內建函式的數量有限,想自己設計符合使用需求的函式,則可以定義一個函式,其語法格式如下:

def 函式名 (引數列表):
    函式體

注意以下幾點:
1.def(即define,定義)為關鍵字,表示定義一個函式。
2.函式名是一個識別符號,注意不能與關鍵字重名。
3.小括號之間既可以用定義引數,引數是可以選的,但小括號不可少。
函式體以冒號起始,並且縮排。
4.函式體的第一行語句可以選擇性使用文件字串用來存放函式說明。
5.return[表示式]結束函式,將表示式的值返回給呼叫者,也可以省略。
自定函式示例:
在這裡插入圖片描述

位置引數
位置引數是指函式呼叫是傳遞實參的順序與自定義函式的形參順序一致,示例如下:
在這裡插入圖片描述關鍵引數
關鍵引數是指通過賦值傳遞的引數。關鍵引數允許函式呼叫時傳遞實參的順序與定義不一致,因為python解釋能夠用形參名匹配實參值,使使用者不必記住位置實引數的順序。例:
在這裡插入圖片描述
預設引數
預設引數可以讓函式的呼叫更加簡化,就如同安裝pc端軟體時,程式會提示使用者預設安裝路徑,當然使用者也可以自定義安裝路徑。
不定長函式
在前面對函式介紹中,一個形參只能接受一個實參。除此之外,函式形參可以接受不定個數的實參,即使用者可以給函式提供可變長度的函式,這可以通過在形參前面使用*來實現,如下例:

def mySum (a=0,b=0,*args):
    print(a,b,args)
    sum=a+b
    for n in args:
       sum+=n
    return sum
print(mySum(1,2))
print(mySum(1,2,3))
print(mySum(1,2,3))
print(mySum(1,2,3,4)

傳遞不可變與可變物件
在python中,數字、字串與元祖是不可變型別,而列表、字典是可變型別,兩者區別如下:
1.不可變型別——該型別的物件所代表的值不能被改變。當改變某個變數時,由於某所指的值不能被改變,相當於把原來的值複製一份後在改變,這會開闢一個新的地址,變數在指向這個新地址。
2.可變型別——該型別的物件所代表的值可以被改變,變數改變後,實際上是其所指的值直接發生,並沒有發生複製行為,也沒有開闢出新的地址。
例如:呼叫函式時傳遞不可變與不可變物件
在這裡插入圖片描述
當函式具有多個返回值時,如果只用一個變數來接收返回值,函式返回的多個值實際上構成了一個元祖,例:
在這裡插入圖片描述
變數的作用域
區域性變數
在函式內部定義的普通變數只在函式內部起作用,稱為區域性變數,當函式執行結束後,區域性變數自動刪除,不可以在使用,例:
在這裡插入圖片描述
全域性變數
如果需要在函式內部給一個定義在函式外的變數賦值,那麼這個變數的作用域不能是區域性的,而應該是全域性的,能夠同時作用於函式內外的變數稱為全域性變數,他通過global關鍵字宣告,例:
在這裡插入圖片描述

相關文章