python自定义函数和推导
#之所以把这俩写一起,并不是因为这俩有什么关系,因为都太简单,没什么可说的
#自定义函数的格式,def开头,后面空格,在后面是函数名,接括号,括号里是入参参数
1 #!/usr/bin/python 2 # coding: UTF-8 3 4 def abc(num): 5 if num > 10: 6 return 7 print num 8 num += 1 9 abc(num) 10 11 if __name__ == '__main__': 12 abc(1)
结果是1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n
说明下,这里有个递归,递归在代码里最好不要出现,因为每递归一次都会占用的内存都会累加递增,因此如果可以,尽量把递归改成循环例如这个例子,可以改成下面这样
#!/usr/bin/python # coding: UTF-8 def abc(num): while num > 10: print num num += 1 return if __name__ == '__main__': abc(1)
这样就可以了
再看看推导,就说下for的把,其他的忘了,以后想起来再加
a = range(10) b = [] for i in a: i += 1 #每个元素加1 b.append(i) #把i加到空list,b中 print b #结果是[1,2,3,4,5,6,7,8,9,10] #推导变成 b = [i+1 for i in a] #还可以加入if b = [i+1 for i in a if i > 3] #取a里面>3的数,结果是[5,6,7,8,9,10]
lambda这个是函数的推导,先看代码
z = lambda x,y: x+y v = z(1,2) print(v)
这段代码的运行结果是3,再看看下面这段
def z(x,y): return x+y
v = z(1,2)
print(v)
其实这两段代码是一个意思,也就是lambda是def创建函数的推导