在python中,对于 - :'str'和'int'

use*_*465 -2 python algorithm encode

我想制作一种编码算法.所以我写了这段代码.但不起作用(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
Run Code Online (Sandbox Code Playgroud)

如果我使用"encode("11101")",它不起作用......

Traceback(最近一次调用最后一次):

文件"",第1行,in

编码( "1101")

文件"",第6行,编码

elif i ==(len(n-1)):

TypeError:不支持的操作数类型 - :'str'和'int'

在这种情况下我该怎么办?如何修改代码才能工作?

Chr*_*ann 7

elif i==(len(n-1))
Run Code Online (Sandbox Code Playgroud)

这是有问题的一行.你试图从一个字符串中减去1.我想你真正想做的是:

len(n)-1
Run Code Online (Sandbox Code Playgroud)

为了避免这些错误,你应该给你的变量说出名字.input_string可能适合这里.