import math
def isvaild(x):
return math.sqrt(x).is_integer()
print filter(isvaild,range(1,101))
def isvaild(x):
return math.sqrt(x).is_integer()
print filter(isvaild,range(1,101))
2019-09-25
最赞回答 / weixin_慕盖茨4367173
a,b=b,a+b 这种赋值方式是先计算等式右边,再把计算结果赋值给等式左边。而a=b,b=a+b,这样是先把b的值赋给a,然后再计算b=a+b,就变成了b=b+b了
2019-09-24
最赞回答 / 古天羽号_mooc
函数理解是上编写好的存在于内存固定某处的代码序列,比如上述代码中的0x1037bf320。x只是一个临时创建的变量,自身是没有意义的。x被赋予函数的实际后,就相当于指向(因为学了C所以喜欢指针这种描述)上述函数所在位置,x()则表明是对x指向位置的跳转/调用,和f()是等价的。
2019-09-24
最新回答 / 慕圣6380070禅达
这里其实是2版本的ceil和floor对整型的向上和向下取整导致的,3.的版本就直接取小数部分了,直接强制类型转化,2版本 的还保留了c语言,跟分子的逻辑
2019-09-21
已采纳回答 / mtboy
# coding: utf-8#取公约数方法def gcd(a,b): print 'init------a=%s' % a print 'init------b=%s' % b print '################' if b == 0: print 'last-----b=0:a=%s' % a print 'last-----b=0:b=%s' % b return a return gcd(b, a % b)...
2019-09-19
最新回答 / qq_萱紫_0
数据类型相同可以想见,像n=1, m=2, j = n+m=3一样,r1和r2属于相同的数据类型,都是string类型,string+string还是string,所以可以相加
2019-09-19
因为i是一个会改变的参量而不是一个固定的数,所以想办法留住需要的时候i的值就可以了
def count():
fs = []
for i in range(1, 4):
def f(x=i):
return x*x
fs.append(f)
return fs
f1, f2, f3 = count()
print f1(), f2(), f3()
def count():
fs = []
for i in range(1, 4):
def f(x=i):
return x*x
fs.append(f)
return fs
f1, f2, f3 = count()
print f1(), f2(), f3()
2019-09-18
import math
def is_sqr(x):
return x and x%math.sqrt(x)==0
print filter(is_sqr, range(1, 101))
def is_sqr(x):
return x and x%math.sqrt(x)==0
print filter(is_sqr, range(1, 101))
2019-09-17