().is_integer()不起作用

aaa*_*aaa 4 python integer python-2.7

这段代码有什么问题:

n = 10
((n/3)).is_integer()
Run Code Online (Sandbox Code Playgroud)

我不明白为什么我不能设置n =任何数字并检查它是否是整数.

谢谢你的帮助!

python 2.7.4

错误:

Traceback (most recent call last):
  File "/home/userh/Arbeitsfläche/übung.py", line 2, in <module>
    print ((n/3)).is_integer()
AttributeError: 'int' object has no attribute 'is_integer'
Run Code Online (Sandbox Code Playgroud)

Seb*_*ryd 12

出现此错误的原因是因为您使用整数除法将整数10除以3,因此以int实例的形式获取整数3 .然后尝试is_integer()在该结果上调用该方法,但该方法在float类中而不在int类中,就像错误消息所示.

快速解决方法是更改​​代码并除以,3.0而不是3导致浮点除法,并为您提供一个float可以调用is_integer()方法的实例,就像您尝试的那样.做这个:

n = 10
((n/3.0)).is_integer()
Run Code Online (Sandbox Code Playgroud)


Mor*_*enn 5

您正在使用Python 2.7.除非您使用from __future__ import division,否则将两个整数分开将返回整数.is_integer只存在float,因此你的错误.


Ohl*_*lin -2

...

当我写这个答案时,没有关于语言的信息。

但在 python2 中,你可以使用以下命令来检查它是否是整数

isinstance( <var>, ( int, long ) )
Run Code Online (Sandbox Code Playgroud)