python—函數實例2
阿新 • • 發佈:2017-12-03
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