课程
/后端开发
/Python
/python进阶
import math
def is_sqr(x):
if isinstance(math.sqrt(x),int):
return x
print filter(is_sqr,range(1,101))
2016-02-22
源自:python进阶 2-6
正在回答
math.sqrt的返回值是浮点数,所以你的"if isinstance(math.sqrt(x),int)"必然是False的,所以is_sqr()一定返回None,转换为布尔型,即为False
filter()的第一个参数,要求为布尔型,可你调用is_sqr()都会返回False,那么必然一个数值都筛选不出来,自然返回的数据为空
wxa1 提问者
晴雨踏青
啊B 回复 晴雨踏青
举报
学习函数式、模块和面向对象编程,掌握Python高级程序设计