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

为什么这样不行呢

import math 
def is_sqr(x):
    math.sqrt(x) %1 == 0
    return x
    
print filter(is_sqr,range(1,101))


正在回答

2 回答

你的代码是直接 return x,以为着前面的判断并没有效果,加上if就可以了,如下:

http://img1.sycdn.imooc.com//587f4313000178ec11840511.jpg

import math

def is_sqr(x):
    if math.sqrt(x) % 1 == 0.0:
        return x

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


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

慕粉1424266921 提问者

非常感谢!
2017-01-22 回复 有任何疑惑可以回复我~

 return x and math.sqrt(x)%1 ==0  #
为什么一定要放在一行呢
前面加if
=也不行



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

举报

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

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

进入课程

为什么这样不行呢

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