为了账号安全,请及时绑定邮箱和手机立即绑定

感觉代码是正确的,但是为什么输出是“【】”呢,就是一个单纯的中括号,里面没有值

import math

def is_sqr(x):

    return x and isinstance(math.sqrt(x),int)

print list(filter(is_sqr, range(1, 101)))

各位大佬能帮我看一下有什么问题吗?个人没搞懂到底为什么不输出结果,谢谢各位啦。

正在回答

1 回答

判断条件不对,math.sqrt(x)结果为float,函数结果永远为False.改成math.sqrt(x) == int(math.sqrt(x))试试

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
python进阶
  • 参与学习       255771    人
  • 解答问题       2946    个

学习函数式、模块和面向对象编程,掌握Python高级程序设计

进入课程

感觉代码是正确的,但是为什么输出是“【】”呢,就是一个单纯的中括号,里面没有值

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信