函式的引數有形參和實參,我們可以傳遞多種型別的實參,稱為多型別傳值,如下:
in [13]: def add(x,y):
...: return x+ y
...:
in [14]: add(3,4)
out[14]: 7
in [15]: t=(1, 2)
in [16]: add(*t) #可以傳遞乙個元組
out[16]: 3
in [17]: d=
in [18]: add(**d) #可以傳遞乙個字典,當函式定義的是x,y,字典的key必須是x,y
out[18]: 30
in [21]: d=
in [22]: add(**d)
out[22]: 'ab'
也可以這樣匯入:
in [29]: def fun(a,b,*c):
...: print a
...: print b
...: print c
...:
...:
冗餘引數:
在定義函式的時候,假設我們定義了三個形參,那麼我們就得傳遞三個實參,當我們定義乙個沒有具體數量的形參時,我們可以採用 def fun(x, *args, **kwargs) 這種形式來定義,這樣我們在傳遞實參的時候就不會受限制了
滿足條件
必須有最後的預設結果
if n == 0
遞迴引數必須向預設結果收斂的:
factorial(n-1)
遞迴呼叫即在定義函式的時候,在函式內部再呼叫自己,也就是函式自己呼叫自己,通常用於計算階乘
注意一點的是,如果函式一直呼叫自己,那就成了死迴圈了,因此我們通常會設乙個條件,當條件為假時函式就終止了
當n=0時,返回為1,例如6=321
in [45]: def
fun(n):
...: if n==0:
...: return
1 ...: else:
...: return n*fun(n-1)
in [46]: fun(3)
out[46]: 6
相加時,當n=0時,返回為0,6 = 6+5+4+3+2+1+0
in [48]: def
fun(n):
...: if n==0:
...: return
0 ...: else:
...: return n + fun(n-1)
in [49]: fun(100)
out[49]: 5050
列印目錄下所有檔案:
方法:判斷是否是目錄或者檔案
in [54]: os.path.isdir('/proc/')
out[54]: true
in [55]: os.path.isdir('/a')
out[55]: false
in [56]: os.path.isfile('/etc/passwd')
out[56]: true
in [57]: os.path.join('/etc','aaa','bbb') #不管這個路徑存不存在,都連線在一起
out[57]: '/etc/aaa/bbb'
列出目錄下所有的檔案和目錄
lsdir=os.listdir(path) #將目錄下的檔案及資料夾都列印出來
dirs=[i for i in lsdir if os.path.isdir(os.path.join(path,i))] #遍歷若是目錄則列印出來,放在乙個列表
files=[i for i in lsdir if os.path.isfile(os.path.join(path,i))]#遍歷若是檔案則列印出來,放在乙個列表
if files: #若是檔案存在
for f in files:
print os.path.join(path,f)
if dirs: #若是目錄存在
for d in dirs:
print_file(os.path.join(path,d)) #需要指定絕對路徑
print_file(sys.ar**[1])#指令碼後面需要跟乙個引數,若是2,則需要2個
多型別傳值和冗餘引數 函式的遞迴呼叫
函式的引數有形參和實參,我們可以傳遞多種型別的實參,稱為多型別傳值,如下 in 13 def add x,y return x y in 14 add 3,4 out 14 7 in 15 t 1,2 in 16 add t 可以傳遞乙個元組 out 16 3 in 17 d in 18 add d...
多型別傳值和冗餘引數 函式的遞迴呼叫
函式的引數有形參和實參,我們可以傳遞多種型別的實參,稱為多型別傳值,如下 in 13 def add x,y return x y in 14 add 3,4 out 14 7 in 15 t 1,2 in 16 add t 可以傳遞乙個元組 out 16 3 in 17 d in 18 add d...
Python基本語法 函式 引數的多型別傳值
軟體 一般而言,形參和實參的數量要一致。但是當實參為序列資料型別時,我們可以將多個實參傳遞到形參中。我們可以在實參列表中以 或者 識別符號來限制傳入的實參必須為 tuple list 或 dict 的型別物件。其實不定長引數本質是將冗餘的實參轉換為tuple資料型別後再傳遞給函式。下面的例子傳遞了乙...