Skip to main content
 首页 » 编程设计

python之强制变量为整数

2025年05月04日19mengfanrong

errors = int(0) 
for i in range(len(expectedData)): 
    if data[i] != expectedData[i]: 
        errors += int(binary_compare(data[i], expectedData[i])) 
return errors 

我有上面的代码,我试图用它来计算一些数据的一些整数(错误数)。我已经将所有我能看到的可能的东西都转换为一个整数,但是“errors += ...”这一行仍然附加了这个值,而不是添加了它。

例如,如果我的答案应该是 7,我可能会得到 500002。(5 + 0 + 0 + .. + 2)。我以前从未遇到过这个。函数 binary_compare 也返回一个整数,但我完全不知道为什么这不起作用。

请您参考如下方法:

python 不是 javascript

当您从 count = 0 开始执行 count += value 时,无法获得连接的字符串而不是数学总和。如果您尝试将字符串添加到整数,则会引发异常:

>>> x = 0 
>>> x += "1" 
TypeError: unsupported operand type(s) for +=: 'int' and 'str' 

要比较您不知道它们是字符串还是整数的值,我会使用

str(data[i]).strip() == str(expectedData[i]).strip() 

对于非整数证明的数学和,你可能想做这样的事情

try: 
    value = int(expectedData[i]) 
except: 
    value = 0 
count += value