1. 程式人生 > >python—函數實例2

python—函數實例2

python

一、遞歸

幾種常用內置函數方法:

1)os.listdir():列出第一層目錄文件

In [14]: os.listdir("/root/python")
Out[14]:
['20.py',
'1.py',
'19.py',
'21.py']

2)os.path.isdir():判斷是不是目錄

In [13]: os.path.isdir("/root/python")
Out[13]: True

3)os.path.isfile():判斷是不是文件

In [15]: os.path.isfile("/root/python/1.py")
Out[15]: True

4)os.path.join():拼接路徑

In [16]: os.path.join("/root/python","dir1","dir2")
Out[16]: '/root/python/dir1/dir2'


練習:使用遞歸列出目錄下的所有文件

#!/usr/bin/env python
import os
import sys
def print_file(path):
lsdir = os.listdir(path)
for i in lsdir:
if os.path.isfile(os.path.join(path,i)):
print os.path.join(path,i)
if os.path.isdir(os.path.join(path,i)):
print_file(os.path.join(path,i))
print_file(sys.argv[1])

或:

#!/usr/bin/env python
import os
import sys
def print_file(path):
lsdir = os.listdir(path)
files = [i for i in lsdir if os.path.isfile(os.path.join(path,i))]
dirs = [i for i in lsdir if os.path.isdir(os.path.join(path,i))]
if files:
for fl in files:
print os.path.join(path,i)
if dirs:
for dr in dirs:
print_file(os.path.join(path,dr))
print_file(sys.argv[1])



二、匿名函數:lambda,冒號前是變量參數,冒號後是返回值

reduce()方法:無需定義函數,直接使用匿名函數即可

練習:累加

In [18]: reduce(lambda x,y:x+y,range(1,101))
Out[18]: 5050



三、內建函數

1)abs():絕對值


2)max() min():序列的最大最小值


3)len():取長度,序列和字典都可以


4)divmod():返回商和余數


5)pow(): 取

說明:兩個數,冪;三個數,先冪,再取余數


6)round():保留小數位

說明:先變成浮點數,再保留小數


7)callable():判斷一個對象是不是可調用的:函數、類可以調用,變量不可以調用


8)type():查看對象的類型


9)isinstance():判斷是不是指定的類型


10)cmp():比較兩個數字、字符串


11)range()、xrange():一個返回列表、一個返回對象(遍歷時才有值)


12)complex():轉變成一個負數


13)str():轉換成字符串,可以是列表,也可以是字典




python—函數實例2