2、函数

1、基本函数

        abs(x)      # 取正

        cmp(x,y) # x<y -1 x=y 0 x>y 1

        int(x) # 转换为整型

        float(x)    # 转换为浮点型

        bool(x) # 转换为布尔型

        isinstance(x,(int,float))  #x类型是否为int|float

2、定义函数

def mydef(x):
	if x>0:
		return '大于0'
	else
		return '小于0'
# 没有return,返回None 

3、空函数(占位)

def nop():
	pass	#什么都不做

4、返回多个值(其实返回的是tuple)

def many():
	return 1,2
x,y = many()  # x = 1  y = 2
a = many()    # (1,2)
5、默认参数
def power(x,n=2):
	s = 1;
	while n >0:
		n = n - 1
		s = s * x
	return s
power(2)   # 4
power(2,3) # 8

6、不变对象

def mydef(l=[]):
	l.append('a')
	return l
mydef()		#l =['a']
mydef()		#l =['a','a']

    解决办法

def mydef(l = none):
	if l is none:
		l = []
	l.append('a')
	return l

7、可变参数(传入的参数个数是可变的)

# 参数前加'*',函数内部接受的是一个tuple
def mydef(*number):
	s = 0
	for n in number:
		s = s + n
	return s
mydef(1,2,3)
mydef(1,2,3,4,5)

8、关键字参数

# 可以传入任意个含参数名的参数,封装为dict
def mydef(name,sex,**a):
	print 'name:',name,' sex:',sex,' a:',a
mydef('name','sex')   #name:name sex:sex a:{}
mydef('name','sex',other='other',id = 1)
	# name:name sex:sex other:{'other':'other','id':1}

9、特性

9.1、切片

l = range(100)
l[0:3]|l[:3] # 从第0个开始,截取3个
l[:10:3]	# 从第0个开始,截取10个,每三个取一个
l[::5]	# 从第0个开始,每五个取一个
l[:]	# 从第0个开始,取所有

9.2、迭代

# 判定是否可以迭代
from collections import Iterable
isinstance('abc',Iterable)  #true
isinstance(123,Iterable) #false
l = {'a': 1, 'b': 2, 'c': 3}
for key in l:
   	print key   # a b c
for k,v in l.iteritems
print k , ' - ' , v
# 列表生成
range(10)       # 0~9
range(1,11) # 1~10
[x*x for x in range(1,11)]  # [1*1,2*2...10*10]
[x*x for x in range(1,11) if x%2==0] #[2*2,4*4...10*10]

10、高阶函数

         一个函数就可以接收另一个函数作为参数。

def mydef(x,y,f):
	return f(x) + f(y)

10.1、Map

#集合中的每个元素都进行函数运算,并形成新的集合
def mydef(x):
	return x*x
map(mydef,[1,2,3])	# [1,4,9]

10.2、reduce

reduce(f,[1,2,3])     # f(f(1,2),3) 函数f必须是两个参数

10.3、filter

def mydef(x):
	return x%2 == 1
# 将集合中满足函数的元素形成新的集合
filter(mydef,[1,2,3,4,5,6]) 	# [1,3,5]

10.4、sorted

sorted([3,5,1,4,2]) 	# [1,2,3,4,5]
def mydef(x,y):
	if x>y:
		return -1
	if x<y:
		return 1
	return 0
sorted([3,5,1,4,2],mydef) 	# [5,4,3,2,1]

10.5、匿名函数(lambda)

map(lambda x: x * x, [1, 2, 3,]) # [1, 4, 9]

猜你喜欢

转载自1151474146.iteye.com/blog/2367503