在Python中判断一个值是否为整数
我想知道在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'