python3基礎之函數參數類型

文章已更新,最新地址: https://www.fearlazy.com/index.php/post/141.html

 

函數的參數是函數內部與外部交流的紐帶,上一篇文章我們使用了最簡單的參數形式(就一個參數)。接下來測試一下多個參數的情況是怎樣的?

    1.測試1

    image.png

    例子中使用了兩個參數p1和p2, 函數的功能就是打印出p1 vs p2。接着調用了兩次sayHello函數,兩次給參數賦了不同的值,從結果可以看出函數調用時是按順序給參數賦值的,即第1個參數賦給了p1,第二個參數賦給了p2,以此類推。當然了這裏只有兩個參數沒得推。那麼有時候我很任性不想按順序給參數怎麼辦?

    2.測試2

    image.png

    像這樣在函數調用時把參數名帶上(如p1 = 'hello')就可以不按順序給參數了。python中稱之爲關鍵字參數。雖然可以不按順序寫參數但還是不夠任性,不寫參數行不行?

    3.測試3

    image.png

    很顯然自己定義的參數含着淚也要寫完啊。難道就沒有別的辦法嗎?

    4.測試4

    image.png

    這一次還是很任性的沒給參數,程序也沒有報錯,那是因爲函數定義時給了參數。既然這樣那參數還有啥用呢?當然有用了,函數定義時給的是默認參數,需要時可以傳入別的參數來替換給的默認值。

    除以上這些python的參數還有更任性的用法,當我在定義函數的時候還不知道要幾個參數怎麼辦?看測試5:image.png

 測試代碼中給了一個參數people但是在參數前面有個星號。實際上這個參數是一個元組(元組是python內置的一種數據結構可以用來放多個元素)。調用函數時的幾個參數會被看成是元組的元素。不定長參數還有另一種形式那就是帶兩個星號的參數。

image.png

帶兩個星號的參數本質上是一個字典,所以傳遞參數的時候也要按照key=value的形式傳遞。還有更變態的傳遞參數的方法那就是一個星號和兩個星號一起使用。不過一個星號必須放在前面:

image.png

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