课程
/后端开发
/Python
/python进阶
def is_sqr(x):
return isinstance(math.sqrt(x), int)
print filter(is_sqr, range(1, 101))
为啥这样填会报错。。
2017-02-14
源自:python进阶 2-6
正在回答
试试 print math.sqrt(9)
得到的结果是3.0
经过sqrt运算,得到的都是float类型,你用instance(...,int)判断,最后得到一个空数组
柯基弟弟 提问者
print filter(lambda x:int(math.sqrt(x))*int(math.sqrt(x))==x, range(1, 101))
for i in range(1,101): print math.sqrt(i)
def is_sqrt(x): r= int(math.sqrt(x)) return r*r==x
举报
学习函数式、模块和面向对象编程,掌握Python高级程序设计