標籤:關鍵字 輸出 hand dong 有一個 文法 shandong 通過 htm
python的函數和方法,通過def 定義:
函數的特性:
- 減少重複代碼
- 使程式變的可擴充
- 使程式變得易維護
函數和方法的區別:函數有傳回值、方法沒有
文法定義:
def sayhi():#函數名 print("Hello, I‘m nobody!") sayhi() #調用函數
可以帶參數
#下面這段代碼a,b = 5,8c = a**bprint(c) #改成用函數寫def calc(x,y): res = x**y return res #返回函數執行結果 c = calc(a,b) #結果賦值給c變數print(c)
註:函數參數說明,定義函數中的參數稱為形參,調用函數中的參數稱為實參。
def test(x,y): print x print yx=1y=2test(y=y, x=x)>>1>>2
實參要與形參中的個數相同,正常情況下,給函數傳參數要按順序,不想按順序就可以用關鍵參數,只需指定參數名即可,但記住一個要求就是,關鍵參數必須放在位置參數之後。
具體見:http://www.cnblogs.com/alex3714/articles/5740985.html
非固定參數
若你的函數在定義時不確定使用者想傳入多少個參數,就可以使用非固定參數
def stu_register(name,age,*args): # *args 會把多傳入的參數變成一個元組形式 print(name,age,args) stu_register("Alex",22)#輸出#Alex 22 () #後面這個()就是args,只是因為沒傳值,所以為空白 stu_register("Jack",32,"CN","Python")#輸出# Jack 32 (‘CN‘, ‘Python‘)
還可以有一個**kwargs
def stu_register(name,age,*args,**kwargs): # *kwargs 會把多傳入的參數變成一個dict形式 print(name,age,args,kwargs) stu_register("Alex",22)#輸出#Alex 22 () {}#後面這個{}就是kwargs,只是因為沒傳值,所以為空白 stu_register("Jack",32,"CN","Python",sex="Male",province="ShanDong")#輸出# Jack 32 (‘CN‘, ‘Python‘) {‘province‘: ‘ShanDong‘, ‘sex‘: ‘Male‘}
參數組包括:*args(把多傳入的位置參數變成一個元組形式)、**kwargs(會把多傳入的關鍵字參數變成一個字典形式)
註:預設參數要寫到**kwargs參數組的前面,向**kwargs傳遞的實參必須是關鍵字參數。
def test(x,*y): print x print ytest(2,3,4 )>>2>>(3, 4)
def test(x,f=18,**y): print x print f print ytest(2,z=3,m=4 )>>2>>18>>{‘z‘: 3, ‘m‘: 4}
註:函數定義模組要寫到調用該函數的前面。
python基礎函數、方法