def calc_prod(lst):
def return_prod():
return reduce(prod,lst)
return return_prod
def prod(x, y):
return x*y
f = calc_prod([1, 2, 3, 4])
print f()
def return_prod():
return reduce(prod,lst)
return return_prod
def prod(x, y):
return x*y
f = calc_prod([1, 2, 3, 4])
print f()
2018-02-17
import math
def is_sqr(x):
return x and math.sqrt(x)%2==0 or math.sqrt(x)%1==0
print filter(is_sqr, range(1, 101))
def is_sqr(x):
return x and math.sqrt(x)%2==0 or math.sqrt(x)%1==0
print filter(is_sqr, range(1, 101))
2018-02-17
class Person(object):
__count = 0
def __init__(self, name):
self.name=name
Person.__count+=1
p1 = Person('Bob')
p2 = Person('Alice')
try:
p1.__count
Person.__count
except AttributeError:
print "attributeerror"
print "1"
print "2"
__count = 0
def __init__(self, name):
self.name=name
Person.__count+=1
p1 = Person('Bob')
p2 = Person('Alice')
try:
p1.__count
Person.__count
except AttributeError:
print "attributeerror"
print "1"
print "2"
2018-02-16
class Person(object):
def __init__(self, name, score):
self.name=name
self.__score=score
p = Person('Bob', 59)
print p.name
try: print p.__score
except: print 'attributeerror'
def __init__(self, name, score):
self.name=name
self.__score=score
p = Person('Bob', 59)
print p.name
try: print p.__score
except: print 'attributeerror'
2018-02-15
上节连time是啥我都弄了好久才弄懂,,,这节和上节的区别就是多了一个if 条件的判断实际上难度没有太大的变化
所以,我还是回头再理解下装饰器吧,,,
所以,我还是回头再理解下装饰器吧,,,
2018-02-15
我发现有些同学似乎都答错了啊,,倒是先点进参考答案看一下啊
先是import time
然后x=time.time来获取时间,再将两个时间相减得到运行时间
像有些同学代码里time.asctime(time.localtime(time.time()))
错的啊错的啊
这个是显示当前计算机时间
而题目要求的是程序的运行时间!
先是import time
然后x=time.time来获取时间,再将两个时间相减得到运行时间
像有些同学代码里time.asctime(time.localtime(time.time()))
错的啊错的啊
这个是显示当前计算机时间
而题目要求的是程序的运行时间!
2018-02-14
print filter(lambda s:s and len(s.strip()) > 0, ['test', None, '', 'str', ' ', 'END'])
lambda 就是匿名函数,lambda s:后面的就是匿名函数的内容
不会的时候多看看teacher举的例子,也许会有新的收获
lambda 就是匿名函数,lambda s:后面的就是匿名函数的内容
不会的时候多看看teacher举的例子,也许会有新的收获
2018-02-14
#两种方法:
#方法1: 自己构建一个f function 代码如下:
import math
def add(x, y, f):
return f(x) + f(y)
def f(c):
return c**0.5
print add(25, 9, f)
#方法2: 把import math 改为 from math import sqrt,就可以调用 sqrt,代码如下:
from math import sqrt
def add(x, y, f):
return f(x) + f(y)
print add(25, 9, sqrt)
#方法1: 自己构建一个f function 代码如下:
import math
def add(x, y, f):
return f(x) + f(y)
def f(c):
return c**0.5
print add(25, 9, f)
#方法2: 把import math 改为 from math import sqrt,就可以调用 sqrt,代码如下:
from math import sqrt
def add(x, y, f):
return f(x) + f(y)
print add(25, 9, sqrt)
2018-02-13
def cmp_ignore_case(s1, s2):
s1=s1.lower()
s2=s2.lower()
if s1>s2:
return 1
if s1<s2:
return -1
return 0
print sorted(['bob', 'about', 'Zoo', 'Credit'], cmp_ignore_case)
一开始出错我还以为是我代码打错了,结果检查之后发现是有一个s1>s2打成了s2>s2.。。。
引以为戒引以为戒,,,
s1=s1.lower()
s2=s2.lower()
if s1>s2:
return 1
if s1<s2:
return -1
return 0
print sorted(['bob', 'about', 'Zoo', 'Credit'], cmp_ignore_case)
一开始出错我还以为是我代码打错了,结果检查之后发现是有一个s1>s2打成了s2>s2.。。。
引以为戒引以为戒,,,
2018-02-12
import math
def kf(x):
return pow(x,0.5)
def is_sqr(x):
if kf(x)%1==0:
return x
我优化我优化。。。
def is_sqr(x):
if math.sqrt(x)%1==0:
return x
这样就完全ok了,%取余数,我们除1看看余数为零他就是整数了
def kf(x):
return pow(x,0.5)
def is_sqr(x):
if kf(x)%1==0:
return x
我优化我优化。。。
def is_sqr(x):
if math.sqrt(x)%1==0:
return x
这样就完全ok了,%取余数,我们除1看看余数为零他就是整数了
2018-02-12
又用了一个更简洁的方法,辗转相除法:
def __init__(self, p, q):
if p>q:
a,b = p,q
else:
a,b = q,p
while a%b != 0:
a,b = b,a%b
self.p = p/b
self.q = q/b
def __init__(self, p, q):
if p>q:
a,b = p,q
else:
a,b = q,p
while a%b != 0:
a,b = b,a%b
self.p = p/b
self.q = q/b
2018-02-12