python中filter()函数

题目

请利用filter()过滤出1~100中平方根是整数的数,即结果应该是:

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

我用在线编程学习python(版本2.7)的filter函数是写了

import math


def is_sqr(x):
    r=int(math.sqrt(x)) 
    return r*r==x
print filter(is_sqr, range(1, 101))

我自己电脑上装的python版本是3.6用pycharm这个编辑器发现以上写法会出现 这个错误

主要原因是filter()函数返回的是一个filter对象,把她转换成list对象就可以了

import math
def is_sqr(x):
    r=int(math.sqrt(x))
    return r*r==x
a=list(filter(is_sqr, range(1, 101)))
print (a)




你可能感兴趣的:(python)