复习(5)
1 # 递归列出目录里的文件 2 def print_files(path): 3 isdir, isfile, join = os.path.isdir, os.path.isfile, os.path.join 4 lsdir = os.listdir(path) 5 dirs = [i for i in lsdir if isdir(join(path, i))] 6 files = [i for i in lsdir if isfile(join(path, i))] 7 if dirs: 8 for d in dirs: 9 print_files(join(path, d)) 10 if files: 11 for f in files: 12 print join(path, f) 13 print_files(sys.argv[1]) 14 # 15 # 匿名函数 16 17 # 使用lambda 来创建匿名函数。 18 # lambda只是一个表达式,函数体比def简单很多。 19 # lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。 20 # lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。 21 # 虽然lambda函数看起来只能写一行,却不等同于C或C + +的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。 22 23 sum = lambda arg1, arg2: arg1 + arg2; 24 # 调用sum函数 25 print "相加后的值为 : ", sum(10, 20) 26 print "相加后的值为 : ", sum(20, 20) 27 28 #内建函数: 29 30 #常用函数: 31 abs() 32 max() 33 min() 34 len() 35 divmod() 36 pow() 37 round() 38 callable() 39 type() 40 isinstance() 41 cmp() 42 range() 43 xrange() 44 45 #类型转换函数 46 int() 47 long() 48 float() 49 complex() 50 str() 51 list() 52 tuple() 53 hex() 54 oct() 55 chr() 56 ord() 57 eval() 58 59 #字符串处理函数 60 str.capitalize() 61 str.replace() 62 str.split() 63 str.join() 64 string模块 65 66 # 序列处理函数 67 len() 68 max() 69 min() 70 71 # 序列处理函数 72 filter() 73 zip() 74 map() 75 reduce()