为什么用instance不可以呢?

来源:8-5 Python的filter()函数

是小丹泓呀

2024-08-04 15:28

# 第一段代码方法

import math

def is_sqrt(x):

    return isinstance(math.sqrt(x),int) == True

for item in filter(is_sqrt,[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]):

    print(item)

    

# 第二段代码方法

import math

def is_sqrt(x):

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

for item in filter(is_sqrt,[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]):

    print(item)


写回答 关注

1回答

  • 初雪momo
    2024-09-22 18:07:32

    我也用的instance,也想知道为什么不行😀

    石头轩_00...

    调用math.sqrt(x)的得到的是浮点数,可以执行math.sqrt(4),打印出来就清楚了,结果是2.0,不是2,所以判断 isinstance(math.sqrt(x),int) 就一直是false 了

    2024-10-16 08:58:06

    共 1 条回复 >

Python3 进阶教程(新版)

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

41910 学习 · 236 问题

查看课程

相似问题