Python3.6 - TypeError: объект 'int' не может быть подписан - PullRequest
0 голосов
/ 17 мая 2018

Попытка сложения заданного целого числа, такого как 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 голосов
/ 17 мая 2018
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
>>>
0 голосов
/ 17 мая 2018

val = len (str (n)) (имеет тип int), вы не можете сделать 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))

попробуйте это

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...