Python学习——复习5次课(12月2日)

任务:

复习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()

原文地址:https://www.cnblogs.com/zhuntidaoren/p/7955425.html