在Python中判断一个值是否为整数

21 投票
9 回答
123680 浏览
提问于 2025-04-16 18:58

我想知道在Python中一个数字值是否是整数。比如,给定:

y = x / 3

我想区分一下x的值,看看哪些是能被3整除的,哪些不是。

9 个回答

4

编辑:正如Ollie在这篇帖子下面的评论中指出的,is_integer 是标准库的一部分,因此不应该像我下面所做的那样重新实现。

这个函数利用了一个事实:每个偶数(整数字)都能被2整除,没有余数。无论是 n 还是 n+1 只要有非零的小数部分,就会导致 n%2(n+1)%2 都有余数。这意味着以浮点数表示的整数字会返回True。这个函数对正数、负数和零都能正确工作,至少我认为是这样。不过,正如函数中提到的,对于非常接近整数的值,它会出错。

def isInteger(n):
    """Return True if argument is a whole number, False if argument has a fractional part.

    Note that for values very close to an integer, this test breaks. During
    superficial testing the closest value to zero that evaluated correctly
    was 9.88131291682e-324. When dividing this number by 10, Python 2.7.1 evaluated
    the result to zero"""

    if n%2 == 0 or (n+1)%2 == 0:
        return True
    return False
70

整数是没有小数点的。如果你想知道“在Python中如何检查一个数字是否有小数”,你可以这样做:

not float(your_number).is_integer()
28

在编程中,有时候我们会遇到一些问题,可能是因为代码写得不够好,或者是我们对某些概念理解得不够透彻。比如,有些人可能在使用某个库或者框架的时候,遇到了一些错误或者意外的行为。这时候,查看其他人的提问和回答就显得特别重要,因为这样可以帮助我们找到解决问题的方法。

在StackOverflow上,很多人会分享他们遇到的问题和解决方案。通过这些讨论,我们可以学习到很多实用的知识,避免在自己的项目中犯同样的错误。

总之,编程是一条不断学习的路,遇到问题时,别忘了去查找相关的资源和社区的帮助,这样能让你进步得更快。

if x % 3 == 0:
    print 'x is divisible by 3'

撰写回答