Python3.6 - TypeError:' int'对象不可订阅

时间:2018-05-17 17:31:15

标签: python-3.x python-2.7

尝试添加给定的整数,例如123435 =(1 + 2 + 3 = 6)和(4 + 3 + 5 = 12)并检查它们是否相等。我在下面的代码中遇到错误。我使用的是python 3.6

def isEqual(n):
    num = int(n)
    val = len(str(n))
    mid = len(str(val))//2
    return sum(num(val[:mid])) == sum(num(val[mid:]))

print(isEqual(132435))

2 个答案:

答案 0 :(得分:1)

val = len(str(n))(是int类型)你不能只使用字符串使用[:]

def isEqual(n):
    val = len(str(n))//2
    first_sum = eval(('+').join(str(n)[:val]))
    second_sum = eval(('+').join(str(n)[val:]))
    return first_sum == second_sum

print(isEqual(132435))

试试这个

答案 1 :(得分:0)

return sum(num(val[:mid])) == sum(num(val[mid:]))

这里val的值是6,它是整数,你不能使用整数切片。 sum(num(val[:mid]))

您正在尝试对整数进行切片,这会导致错误。

>>> 10[:5]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'int' object is not subscriptable
>>>