任务:
复习5次课(12月2日)
1.8 递归列出目录里的文件
1.9 匿名函数
2.0-2.4 内建函数
笔记:
递归的注意事项
必须有最后的默认结果
if n == 0
递归参数必须向默认结果收敛的:
factorial(n-1)
递归列出目录里的文件
def print_files(path):
isdir, isfile, join = os.path.isdir, os.path.isfile, os.path.join
lsdir = os.listdir(path)
dirs = [i for i in lsdir if isdir(join(path,i))]
files = [i for i in lsdir if isfile(join(path,i))]
if dirs:
for d in dirs:
print_files(join(path,d))
if files:
for f in files:
print join(path,f)
print_files(sys.argv[1])
匿名函数
python 使用 lambda 来创建匿名函数。
lambda只是一个表达式,函数体比def简单很多。
lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。
虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。
示例:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 可写函数说明
sum = lambda arg1, arg2: arg1 + arg2;
# 调用sum函数
print "相加后的值为 : ", sum( 10, 20 )
print "相加后的值为 : ", sum( 20, 20 )
内建函数:
常用函数:
abs()
max()
min()
len()
divmod()
pow()
round()
callable()
type()
isinstance()
cmp()
range()
xrange()
类型转换函数
int()
long()
float()
complex()
str()
list()
tuple()
hex()
oct()
chr()
ord()
eval()
字符串处理函数
str.capitalize()
str.replace()
str.split()
str.join()
string模块
序列处理函数
len()
max()
min()
序列处理函数
filter()
zip()
map()
reduce()