python語言中函數的傳參與基本練習


首先說明一下在編寫Python腳本時,如何在裏面使用中文

在腳本的開頭可以加上如下代碼段:

# _*_ coding:utf-8 _*_              其效果和#coding=utf-8 是一樣的


wKioL1depbSz9cMRAAAMOuRM_so937.png


下面總結一下在學習Python定義函數時如何傳參的問題:

1、首先是位置傳參以及默認值:

 

定義一個函數func_name,其中形式參數爲arg,arg1,arg2,arg3,arg4

在這幾個參數中arg3arg4是有默認值的,如果調用函數時只給了三個值,那後面的arg3arg4就會使用默認值,當給出的參數是四個或五個時,則一次按位置賦給相應的形參進行調用

wKiom1depRDi3FM-AAAlWA4OK-8940.png


下面是執行程序的結果:

wKiom1depUaARsC-AAAPHP7k1KM230.png


PS:位置傳參最主要的是參數個數要一致,而且順序很重要,相應的值賦給相應位置的形參

 

關鍵字傳參:

在這裏也可以使用關鍵字傳參,即在調用函數時指定形參和哪個實參相對應,這時位置就不是那麼重要了,但位置傳參和關鍵字傳參同時有的話,還是要將位置傳參放在前面定義,這在定義函數時就要注意,否則在調用函數時造成不必要的麻煩。

 

 

2、收集剩餘多餘參數和收集多餘字典參數

 

定義一個函數,可以通過正常的只傳入值或key-value的方法調用。但是如果第一個時參數傳入的是key-value的方法,那麼後面的必須都是key-value方法,如果第一個不是,那麼後面的可以根據情況再傳入值就可以了。

 

下面是一個具體的實例程序:

wKioL1deponweoHAAABKvSJZvUI970.png

在上面的函數func_name中,它所指定的參數是不定的,可能是0個,也可能是n個,所以使用*arg收集剩餘所有參數

 

在調用函數時,如果參數是一個列表,使用*Li其實就是解列表再將列表中的每個元素依次傳參,一般使用*arg進行參數收集;如果不使用*Li,直接調用Li,這是將整個列表作爲一個整體傳入

 

**arg是用來收集key-value類的參數的,這類參數指定定義在函數參數的最後面,在實際調用函數時,可以使用'key'='value'{'key1'='value1', 'key2'='value2'}的形式來進行傳值調用

 

函數cat的定義是爲了將各種參數都放在一起,讓大家能夠看到效果,以及在調用cat函數時是怎樣傳遞參數的


wKiom1depa_TYkSfAAAdMCbC-Ec132.png


wKioL1depuzTJDEsAAATnHcxL90064.png


下面是函數的輸出結果,根據結果對比可以感受一下不同傳參調用的區別:

wKiom1dephHSVkiQAAAjLr2pIOQ889.png


3、從標準輸入獲取變量,以及在語句中替換變量,以及字典傳參在函數體裏的應用:

raw_input是用來獲取標準輸入的值賦給變量,還可以有提示信息

Python中在語句中加入一個變量使用 % 進行替換進去

wKiom1depkGRYl30AAA_gZtcDyY946.png


在函數定義和調用時,key-value類字典傳參時一定要注意都需要前面的兩個*號,函數收集後以字典進行保存,傳進去以後在調用時就會應道相應的字典方法,這裏不再贅述;

 

下面是程序運行的結果,可以根據結果進行對比,看傳參等具體效果如何:

wKiom1depneRp5efAAAaDUq_3BM880.png


4、函數的返回值

 

在函數中最重要的就是其返回值,在調用函數時就是要用到其返回值的結果去進行下一步操作處理,下面是一個簡單地小例子:

wKioL1dep7ezZZdTAAAjDj3KnZk193.png


結果如下:

wKioL1deqAST90zDAAAGuH-VWsk270.png

5、用函數實現一個階乘(遞歸和自定義)

wKioL1deqC7xk-ioAAApFp0d4Wg432.png

下面是輸出結果,兩個函數實現結果一致:

wKiom1dep0TBOP6AAAAIQeJQGHI642.png

6、下面是一個函數的調用,以及函數名和函數結果賦值有何異同的比較,在一個函數中去調用另一個函數的返回值

wKioL1deqK-D3NlJAAA7nhsUXcw056.png

下面是輸出結果,對比腳本可以看出區別與作用

wKioL1deqNOAXBpOAAAKwDRYdqk682.png


7、下面是實現了一些內置函數的基本功能,都是一些簡單練習,供大家參考學習,請多多提出寶貴意見

wKioL1deqQKDjNksAABVecEcg4E477.png

結果如下:

wKiom1deqBCzaXeBAAAMCjwNJ0Q387.png



上面是本人的一些小結與參考練習,以供大家學習,請多多提出寶貴意見!!!

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