ошибка в списках Python - PullRequest
       20

ошибка в списках Python

0 голосов
/ 10 апреля 2010
A=s.append(s[i]+A+B)
* * тысяча один А = s.append (с [I] + А + В) Ошибка типа: неподдерживаемые типы операндов для +: 'long' и 'str'

Что означает эта ошибка? A и B - строки, а s - список

Ответы [ 3 ]

4 голосов
/ 10 апреля 2010

s может быть списком, но элемент - s[i] - это , а не - это длинный, как указано в ошибке.

Кроме того, append() работает непосредственно со списком - он возвращает None, так что вы фактически устанавливаете A как None - вероятно, не то, что вы хотели!

Есть две вещи, которые вы можете сделать, чтобы избежать подобных ошибок в будущем.

  1. Не используйте однобуквенные имена переменных. Используйте описательные имена длиной от одного до трех слов, которые описывают что содержит в себе переменная (и / или для чего она должна использоваться).

  2. Если у вас возникла проблема, попробуйте поместить ее в блок try / Кроме того, где вы ставите имя ошибки после except и распечатывает ошибочные переменные:

try:
    s.append(s[i]+A+B)
except TypeError:
    print "Failed to add", s[i], ",", A, ",", "and", B
    raise

Не забудьте про raise в конце - таким образом, вы не просто проигнорируете проблему и начнете получать действительно странные ошибки.

0 голосов
/ 10 апреля 2010

с [я], вероятно, длинный. Вы не можете добавить длинную строку.

Попытка:

А = s.append (ул (ы [I]) + А + В)

0 голосов
/ 10 апреля 2010

Если A и B - строки, то s [i] должно быть 'long'.

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