Python之函數系列(一)

每個編程語言中(諸如:Java、C++、C)等都有函數的,Python也不例外

函數的主要作用有哪些呢?

1、將程序的功能進行模塊化,功能模塊清晰

2、減少重複代碼的工作量

3、便於閱讀及維護、調試等


一、函數的結束及返回值

# -*- coding: utf-8 -*-

def f1():
    print("This is Fun()")
    return  #函數調用結束
    print("-- End 1--")
    print(" Print 2")
    return "--- End 2  --"

f1()
print(type(f1()))

運行結果:

This is Fun()

This is Fun()

<class 'NoneType'>

1.函數在遇到return語句時,此時函數調用已經結束

2.函數是有返回值的,只不過這裏是None類型

再看下面的例子:

def mth_return():
    return 1,"String",["a","b"],{"K1":1,"Key2":2}
print(mth_return())
print(type(mth_return()))

運行結果:

(1, 'String', ['a', 'b'], {'K1': 1, 'Key2': 2})

<class 'tuple'>

此時,函數的返回值是一個元組

二、函數的參數

  對於函數,其函數名後面的變量通常稱爲:形參,調用函數時,提供的值稱爲:實參

# -*- coding: utf-8 -*-

def method(name,age):  #name,age是形參
    print(name,age)
def method2(name,age ="18"):  #提供默認參數值
    print(name,age)

n = "Mr.James"
method(n,38)  #n是實參
method2("Zhang")
method2("Mr.Zhang",28)

運行結果:

Mr.James 38

Zhang 18

Mr.Zhang 28

三、函數的關鍵字參數

   對於上面的例子,其函數是位置位置參數,位置一一對應,不能多也不能少

   下面的這個這個例子跟上面的有點不一樣,在Python中稱之爲:關鍵字參數

# -*- coding: utf-8 -*-

def test(name="James",age=29):
    print("name:{},{}".format(name,age))

test(age=20,name="Mr.Zhang")

運行結果:

name:Mr.Zhang,20

四、函數的可變長參數

 對於位置參數而言,形參及實參需要一一對應,若有時不確定需要哪些參數或爲了日後能很好的擴展,Python中提供了可變長參數

用法:def function(self,*args,**kwargs)

具體例子:

例子1:

# coding = utf-8

def test(name,*args):
    print(name)
    print(args)
    print(args[3])

test("Mr.Zhang",1,2,3,["a","b"],{"Key1":1,"Key2":2})  # *args 返回的是一個元組

運行結果:

Mr.Zhang

(1, 2, 3, ['a', 'b'], {'Key1': 1, 'Key2': 2})

['a', 'b']

例子2:

# coding = utf-8
def test2(name,*args,**kwargs):  # **kwargs返回的是一個字典
    print(name)
    print(args)
    print(kwargs)

test2("Mr.Zhang",1,2,3,['a','b'],{"Key1":1,"Key2":2},age=18,sex="F")

運行結果:

Mr.Zhang
(1, 2, 3, ['a', 'b'], {'Key1': 1, 'Key2': 2})
{'age': 18, 'sex': 'F'}




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