Python - 无法转换为 int

标签 python

我的全部代码如下(不想遗漏任何内容)。出于某种原因,我不断收到无法将 float 转换为 int 的错误?

import math

def getRange(input):
    if (1 <= input < 10):
        return [1,1,9]
    elif (10 <= input < 190):
        return [2,10,99]
    elif (190 <= input < 2890):
        return [3,100,999]
    elif (2890 <= input < 38890):
        return [4,1000,9999]
    elif (38890 <= input < 488890):
        return [5,10000,99999]
    elif (488890 <= input < 5888889):
        return [6,100000,999999]

def getDigit(input):
    workingRange=getRange(input)
    multi_digit_dec = ((input-workingRange[1])/workingRange[0])+workingRange[1]
    multi_digit_float = math.floor((input-workingRange[1])/workingRange[0])+workingRange[1]
    print multi_digit_float
    multi_digit_int = input(multi_digit_float)
    decimal_remainder = multi_digit_int - multi_digit_dec
##    digit_id = decimal_remainder * len(str(multi_digit_int))
##    actual_digit = str(multi_digit_dec)[digit_id]
##    return actual_digit


getDigit(100)

我的错误是:

Traceback (most recent call last):
  File "C:\Users\Samuel\Desktop\Python\concatenate string of variables and product values.py", line 29, in <module>
    getDigit(100)
  File "C:\Users\Samuel\Desktop\Python\concatenate string of variables and product values.py", line 22, in getDigit
    multi_digit_int = int(multi_digit_float)
TypeError: 'int' object is not callable
>>> 

上面更新的代码以反射(reflect)名为 int 的变量对输入的更改

最佳答案

问题是您使用 int 作为变量名,这会遮蔽 built-in function .重命名变量。

一般来说,熟悉 names of the built-in functions 是值得的, 避免此类问题。

关于Python - 无法转换为 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13809792/

相关文章:

python - IPython 魔法命令和破折号

python - 使用 python 和正则表达式在字符串中查找关键字

python - 对具有不等长子列表的数组应用简单操作

python - 在给定索引的列表列表中查找最大值的列表并返回其第一个值

python - ipython 内核在 16gb 的 linux 盒子中最大容量为 3gb?

python - py-bcrypt 安装在 win 7 64 位 python 上

python - 属性错误 : module 'scipy.misc' has no attribute 'toimage'

python - 连接大量列表的更有效方法?

python - 为什么 python 没有 Spring DI(组件生命周期)框架?

python - 使用 django 形式更新表中某些特定范围的行的单列