尝试添加给定的整数,例如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))
答案 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
>>>