【问题标题】:float' object cannot be interpreted as an integerfloat' 对象不能解释为整数
【发布时间】:2018-01-19 03:46:49
【问题描述】:

我有代码:

  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。

如果是,float类型从何而来?

【问题讨论】:

  • 你在分裂!如果a 不能被i 整除(创建小数部分),a 将变为浮点数。
  • a = a // i 如果你想要整数除法

标签: python


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    当你将它除以一个数字时,它变成一个浮点数,你可以将它返回为整数:

    a = int(a)
    

    之后

    a = a/i
    

    或者:

     a = a//i
    

    【讨论】:

      【解决方案3】:

      浮点数来自使用浮点除法 a/i。要获得 int,请使用整数除法 a//i

      【讨论】:

        猜你喜欢
        • 2018-03-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-01-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多