float'对象不能解释为整数

时间:2017-08-10 18:47:45

标签: python

我有代码:

  a = int(input("Type a integer:"))
    temp = []
    while a != 1:
  --->   for i in range(2, a):
            if a % i == 0:
                temp.append(i)
                a = a / i
                break
    print(temp)

我输入了60,然后它给出了错误: TypeError:'float'对象不能解释为整数。

但是,我查了一下:

a = int(input("Type a integer"))
type(a)

它显示a的类型是int。

如果是这样,浮动类型来自哪里?

3 个答案:

答案 0 :(得分:0)

当你用数字除以它时,它变成一个浮点数,你可以通过以下方法将它返回到整数:

a = int(a)

之后

a = a/i

或者:

 a = a//i

答案 1 :(得分:0)

浮动来自使用浮动分区a / i。要获得int使用整数除法a // i

答案 2 :(得分:0)

当您将a除以i时,经过这么多次迭代后它变为十进制数。如果你从60开始,那么操作将如下:

a = 60 / 2     (=30)
a = 30 / 3     (=10)
a = 10 / 4     (=2.5)

现在,我们可以看到a在你告诉它是一个整数时试图成为一个浮点数。