1. 程式人生 > >【課程16】Python再識函式

【課程16】Python再識函式

變數的作用域:

1、全域性變數-同一個檔案中所有程式碼可用

2、區域性變數-函式內部裡面

注意點:gl0bal x在函式內容修改全域性變數。

預設引數:

1、在輸入情況下,不給形參賦值,即形參為預設引數

def addsum(start =1 ,end = 100,step = 1):
i = start
sumData = 0
while i <= end:
sumData += i
i += step
return sumData
print(addsum())
注意:預設引數一定要在必填後面

可變數量引數:

alist = [1,5,7,9]
def addSum(*inList):#可變數量引數“*”,在函式定義的時候起封裝的效果
sumData = 0
for one in inList:
sumData += one
return sumData
print(addSum(1,2,3,4,5,6))
print(addSum(*alist))#展開元素

關鍵字可變引數:

dict1 = {'name':'tom'}
dict2 = {'name':'tom',2:100}
def func(a,*b,c = 2,**d):#關鍵字引數
print(a,b,c,d)
func(1,2,3,4,5,6)
func(1,2,3,4,5,6,name = 'tom',age = 18)
func(1,2,3,4,5,6,**dict1)#傳字典時需要展開,且僅能傳字典,不能傳列表
func(1,2,3,4,5,6,**dict2)#傳字典時需要展開,展開後顯示為int形式報錯,定義時儘量用字串
#TypeError: func() keywords must be strings

注意:必填>可預設>*可變數量>**關鍵字可變引數

def func(a,*c,b=2):
print(a,b,c)
func(1,2,3,4,5,b = 10)#b值給值一定要帶b
def func(a,b=2,*c):
print(a,b,c)
func(1,2,3,4,5)#b值一定要給b,但是不能用b=