學習筆記(5):Python初級入門精講-關鍵字參數

立即學習:https://edu.csdn.net/course/play/6521/126666?utm_source=blogtoedu

python的函數、參數

例如:函數名稱爲 testFun

           參數名稱分別有a、b、c

函數:

定義——def 函數名稱(參數),參數根據應用場景可有可無

def testFun01():
    print("This is my first function!")


def testFun(a):
    print(a)


testFun01()
testFun("Welcome to learn Python ^_^")

返回——return

return [表達式] 結束函數,選擇性地返回一個值給調用方。不帶表達式的return相當於返回 None。

def testFun01(a, b):
    sumNum = a + b
    print("a+b=",sumNum)
    return sumNum


testFun01(33, 7)

在這裏練習的時候我發現,這個return加和不加,效果都是一樣的。所以,return你到底是來幹嘛的?_?。嗯,小小的糾結了下,查了半天,還是不大懂。要你何用?T_T?

然而它存在就肯定有他的道理,咱不鑽牛角尖不鑽牛角尖(瘋狂暗示自己),後面用多了自然就理解了。若有人可以熱心爲我解釋下,甚是感激(★ ω ★)


參數:佔位

在 python 中,類型屬於對象,變量是沒有類型的

調用參數時使用的參數類型:

  1. 關鍵字參數:定義時所有參數賦一個默認值,忽略參數順序。
  2. 默認參數:定義時給參數一個默認值,在調用時不指定參數,會使用默認參數。
  3. 序列參數:所有參數作爲一個列表傳入。傳參時需要在前面加*,例如:函數名(*列表參數)
  4. 字典參數:參數作爲一個字典傳入。例如:a={"1":"one","2":"two","3":"three"},調用時加兩個*,

上面的定義是我在上面的視頻中總結到的,咳,沒有寫例子,看着有點繞。爲了加深記憶,我另外又找了菜鳥教程上的相關資料,上面的內容更加詳細一些。不過兩個內容表達有些出入,我是研究了菜鳥教程裏面的內容後完全明瞭的。

菜鳥教程上調用函數時可使用的正式參數類型:必需參數、關鍵字參數、默認參數、不定長參數(即上面的序列參數、字典函數)。

最後我做了個整理,翻譯成我自己容易懂的形式:

必需參數 必需參數須以正確的順序傳入函數。調用時的數量必須和聲明時的一樣。定義時有參數,調用時不傳參會出現語法錯誤
關鍵字參數 使用關鍵字參數允許函數調用時參數的順序與聲明時不一致,因爲 Python 解釋器能夠用參數名匹配參數值。例如:若開始在定義時用testFun(a),則調用時需要用testFun(a = "要傳的參數"),若用testFun()則會報語法錯誤
默認參數 調用函數時,如果沒有傳遞參數,則會使用默認參數。例如:在定義的時候用testFun(a, b=21),此時在調用時若用testFun(0),會默認將所傳參數當成a,b用默認值。
序列參數 處理比當初聲明時更多的參數,參數帶一個星號 * ,以元組的形式導入,存放所有未命名的變量參數。例如:定義的函數爲 testFun(a, *b),現在的b就是一個空元組,調用函數時 若用 testFun(10, 20, 30),除了第一個參數,後面的都會以元素組方式傳給b,此時 b = (20, 30)
字典參數 同序列參數使用相似。參數帶兩個星號 **,以字典形式導入,但後面參數必須用關鍵字傳入。例如:定義的函數爲 testFun(a, **b),現在的b就是一個空字典,調用testFun(11, first = 12, second = 13 ),,除了第一個參數,後面的都會以字典方式傳給b,此時 b = {'first':12, 'second':13}

聲明函數時,參數中星號 * 可以單獨出現,例如:testFun(a, b , *, c),這裏的*並無實際作用只是佔了位置,但傳參的時候,c只能用關鍵字傳入

最後,菜鳥教程中還提到一個匿名函數 lambda ,對於剛剛入門的我來說就不繼續深入瞭解了,後續有需要的時候再看。

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