A=s.append(s[i]+A+B)
A = s.append(S [I] + A + B) TypeError:+:'long'和'str'
的不支持的操作数类型这个错误是什么意思? A和B是字符串,s是列表
答案 0 :(得分:4)
s
可能是一个列表,但元素 - s[i]
- 不是 - 它是一个很长的,如错误所示。
此外,append()
会直接在列表上运行 - 它返回None
,因此您实际上将A
设置为无 - 可能不是您想要的!
您可以采取两项措施来帮助避免将来出现此类错误。
不要使用单字母变量名。使用描述性的一到三个字长的名称来描述变量在其中的含义(和/或它应该用于什么)。
当您遇到问题时,请尝试将其放在try / except块中,并在except
之后输入错误名称并打印出有问题的变量:
try:
s.append(s[i]+A+B)
except TypeError:
print "Failed to add", s[i], ",", A, ",", "and", B
raise
不要忘记那里的raise
- 这样你就不会忽视这个问题并开始发现真正奇怪的错误。
答案 1 :(得分:0)
如果A和B是字符串,那么s [i]必须是'long'。
答案 2 :(得分:0)
s [i]可能很长。你不能在字符串中加长。
尝试:
A = s.append(STR(S [1])+ A + B)