-
def f(): print 'call f()...' # 定义函数g: def g(): print 'call g()...' # 返回函数g: return g x=f() print x x() print x()
call f()...
<function g at 0x0000000002671518>
call g()...
call g()...
None
查看全部 -
def cmp_ignore_case(s1, s2):
ts1 = s1.upper()
ts2 = s2.upper()
if ts1 > ts2:
return 1
elif ts1 == ts2:
return 0
else:
return -1
print sorted(['bob', '123', '', 'Credit'], cmp_ignore_case)
查看全部 -
import math
def is_sqr_int(x):
value = math.sqrt(x)
return int(value) == value
print filter(is_sqr_int,range(1,101))
查看全部 -
调用 reduce(f, [1, 3, 5, 7, 9])时,reduce函数将做如下计算:
先计算头两个元素:f(1, 3),结果为4; 再把结果和第3个元素计算:f(4, 5),结果为9; 再把结果和第4个元素计算:f(9, 7),结果为16; 再把结果和第5个元素计算:f(16, 9),结果为25; 由于没有更多的元素了,计算结束,返回结果25。
查看全部 -
reduce()还可以接收第3个可选参数,作为计算的初始值。如果把初始值设为100,计算:
reduce(f, [1, 3, 5, 7, 9], 100)
结果将变为125,因为第一轮计算是:
查看全部 -
import math
def add(x, y, f):
return f(x) + f(y)
print add(25, 9, math.sqrt)
查看全部 -
为一个类动态添加方法,注意要import types
import types
def fn_get_grade(self):
if self.score >= 80:
return 'A'
if self.score >= 60:
return 'B'
return 'C'
class Person(object):
def __init__(self, name, score):
self.name = name
self.score = score
p1 = Person('Bob', 90)
p1.get_grade = types.MethodType(fn_get_grade, p1, Person)
print p1.get_grade()
# => A
p2 = Person('Alice', 65)
print p2.get_grade()
# ERROR: AttributeError: 'Person' object has no attribute 'get_grade'
# 因为p2实例并没有绑定get_grade查看全部 -
首写字母大写 s[0].upper() 其余字母小写 s[1:].lower()
map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。
格式为:map(f,list)
注意:map()函数不改变原有的 list,而是返回一个新的 list。
查看全部 -
开平方的函数 math.sqrt()
使用这个函数,需要引入 import math
查看全部 -
class Person(object):
def __init__( self,name, gender, birth,**kw):
self.name = name
self.gender = gender
self.birth = birth
for k, v in kw.iteritems():
setattr(self, k, v)**kw
for k, v in kw.iteritems():
setattr(self, k, v)
可以接受任意属性
查看全部 -
import functools
sorted_ignore_case = functools.partial(sorted,key=str.lower)
print sorted_ignore_case(['bob', 'about', 'Zoo', 'Credit'])
查看全部 -
'call %s() in %fs' % (f.__name__, (t2 - t1))
匹配带入
查看全部 -
def log(f):
def fn(x):
print 'call ' + f.__name__ + '()...'
return f(x)
return fnf.__name__表示函数名称
查看全部 -
>>> getattr(s, 'name') # 获取name属性'Bob' >>> setattr(s, 'name', 'Adam') # 设置新的name属性>>> s.name 'Adam' >>> getattr(s, 'age') # 获取age属性,但是属性不存在,报错:Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'Student' object has no attribute 'age' >>> getattr(s, 'age', 20) # 获取age属性,如果属性不存在,就返回默认值20:20
查看全部 -
求最大公约数,辗转相除法
查看全部
举报