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

除以1的余数为零,可以判断整数吗?代码运行OK,不知道这个逻辑是否正确?

除以1的余数为零,可以判断整数吗?代码运行OK,不知道这个逻辑是否正确?

 import math 

 def is_sqr(x):   

        return math.sqrt(x)%1==0 


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

正在回答

5 回答

https://img1.sycdn.imooc.com//5cc45f5f0001691202390207.jpg

是对的, == 比较的是两个对象的内容是否相同,这里就是表示两个数字是否相等。虽然1.0和1不是同一个对象(is),但是结果是相等的。

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

import math

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

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


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

嗯,应该没毛病

我刚刚试了一下 :


>>> import math

>>> math.sqrt(11)**2 == 11

True

>>> math.sqrt(14)**2 == 14

True

>>> math.sqrt(1111)**2 == 1111

True

>>> math.sqrt(12)**2 == 12

False

>>> 

以后遇到这种小数的还是尽量小心吧,python的精确度毕竟有限。

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

我也是不能理解这样表达的逻辑,求大神解答

0 回复 有任何疑惑可以回复我~
def is_sqrt(x):
    '''math.sqrt(4) == 2.0 , not int type'''
    if int(math.sqrt(x)) * int(math.sqrt(x)) == x:
        return  True
    else:
        return False
0 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

除以1的余数为零,可以判断整数吗?代码运行OK,不知道这个逻辑是否正确?

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