python不是纯函数式编程,允许有变量
支持高阶函数,函数也可以作为变量传入
支持闭包,有了闭包,就能够返回函数
有限度地支持匿名函数
支持高阶函数,函数也可以作为变量传入
支持闭包,有了闭包,就能够返回函数
有限度地支持匿名函数
2015-04-07
import math
def is_sqr(x):
return math.sqrt(x)%1==0
print filter(is_sqr, range(1, 101))
def is_sqr(x):
return math.sqrt(x)%1==0
print filter(is_sqr, range(1, 101))
2015-04-07
def reversed_cmp(x, y):
if x > y:
return -1
if x < y:
return 1
return 0
这样,调用 sorted() 并传入 reversed_cmp 就可以实现倒序排序:
>>> sorted([36, 5, 12, 9, 21], reversed_cmp)
[36, 21, 12, 9, 5]
无法理解这一段
if x > y:
return -1
if x < y:
return 1
return 0
这样,调用 sorted() 并传入 reversed_cmp 就可以实现倒序排序:
>>> sorted([36, 5, 12, 9, 21], reversed_cmp)
[36, 21, 12, 9, 5]
无法理解这一段
2015-04-04
>>> print lambda i=1:i*i
<function <lambda> at 0x0238C2B0>
<function <lambda> at 0x0238C2B0>
2015-04-04
def cmp_ignore_case(s1, s2):
if s1.upper()>s2.upper():
return 1
else:
return -1
return 0
print sorted(['bob', 'about', 'Zoo', 'Credit'], cmp_ignore_case)
if s1.upper()>s2.upper():
return 1
else:
return -1
return 0
print sorted(['bob', 'about', 'Zoo', 'Credit'], cmp_ignore_case)
2015-04-04
print filter(lambda s:s and not (len(s.strip()) == 0), ['test', None, '', 'str', ' ', 'END'])
2015-04-03
def performance(unit):
def w(f):
def fn(n):
t1=time.time()
r= f(n)
t2=time.time()
print "%s %f %s"%(r,(t2-t1),unit)
return r
return fn
return w
def w(f):
def fn(n):
t1=time.time()
r= f(n)
t2=time.time()
print "%s %f %s"%(r,(t2-t1),unit)
return r
return fn
return w
2015-04-02