我想制作编码算法。所以我写了这段代码。但是没有用(Python)。
示例:" 11101"
编码算法
=> ([0] + [1])+([0] + [1] + [2])+([1] + [2] + [3])+([2] + [3] + [4] )+([3] + [4])
=> (1 + 1)+(1 + 1 + 1)+(1 + 1 + 0)+(1 + 0 + 1)+(0 + 1)
=>结果= 23221
def encode(n):
result=""
for i in range(0, len(n)):
if i==0:
result+=str(int(n[i])+int(n[i+1]))
elif i==(len(n-1)):
result+=str(int(n[i-1])+int(n[i]))
else:
result+=str(int(n[i-1])+int(n[i])+int(n[i+1]))
print result
如果我使用"编码(" 11101")",它就不起作用......
追踪(最近一次呼叫最后一次):
文件"",第1行,
编码(" 1101&#34)
文件"",第6行,编码
elif i ==(len(n-1)):
TypeError:不支持的操作数类型 - :' str'和' int'
在这种情况下我该怎么办?如何修改代码才能工作?
答案 0 :(得分:7)
elif i==(len(n-1))
这是有问题的一行。你试图从一个字符串中减去1。我想你真正想做的是:
len(n)-1
为了避免这些错误,你应该给你的变量说出名字。 input_string可能适合这里。