7.函数def
test.py中的內容:
#coding:utf-8 #支持中文#函數的聲明/定義 def func1(): #無參數print "爽歪歪" def func2(name): #有參數print (name + "我愛你")def add1(num1,num2): #有參數print num1+num2def add2(num1,num2): #有返回值return num1+num2#函數的調用 func1() func2('小甲魚') add1(10,20)count = add2(1,2) print count gjw@gjw:~/TEST_PYTHON$ python ./test.py 爽歪歪 小甲魚我愛你 30 3–
def sayword(name = '小甲魚',word = '爽歪歪'): #實參用關鍵字索引print name+'->'+wordsayword(word = '讓編程改變世界',name = '小甲魚') sayword()結果: 小甲魚->讓編程改變世界 小甲魚->爽歪歪–
收集參數
【1】編寫函數,很多情況下我們都會傳遞一系列值作為參數。為了讓用戶更加方便地給函數提供任意多的值作為參數, Python 中實現了一個 收集參數 的機制:在參數名前面加星號 ( * )。即: def cParam( *params ): pass 。來幾行代碼看看具體情況:>>> def cParam1( *params ):print params 函數調用: >>> cParam1() #無參數時,返回空的元組 ()>>> cParam1(1) #輸出的是元組 (1,)>>> cParam1(1, 2) #輸出的是元組 (1, 2)【2】 【局限性】上面不能傳遞“關鍵字參數” 【解決方案】引出兩個星號(**),例:>>> def cParam2( **params ):print params 函數調用: >>> cParam2() #輸出的是字典 {} >>> cParam2( a=1, b=2, c=3 ) #輸出的是字典 {'a': 1, 'c': 3, 'b': 2} 【3】* 和 ** 是可以一起使用的,返回元組/字典的結合體。 >>> def cParam3( *params1,**params2 ):print params1print params2 函數調用: >>> cParam3() () #空元組 {} #空字典>>> cParam3(1) (1,) #元組 {} #空字典>>> cParam3(1,2,3,a=10,b=20) (1,2,3) #元組 {'a': 10, 'b': 20}【4】*與元組一起使用,作為函數的實參 #coding:utf-8 #支持中文def add(a,b):return a+bdef cParam(*params):return paramsprint(cParam(1,2)) #(1, 2) print(add(*cParam(1,2))) #3輸出: (1, 2) 3總結
- 上一篇: 6.序列!序列!
- 下一篇: 8.局部变量/全局变量global/内嵌