在python中,for - :' str'和' int'

时间:2014-08-03 17:07:56

标签: 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

如果我使用"编码(" 11101")",它就不起作用......

  
    

追踪(最近一次呼叫最后一次):

         

文件"",第1行,

         

编码(" 1101&#34)

         

文件"",第6行,编码

         

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

         

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

  

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

1 个答案:

答案 0 :(得分:7)

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

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

len(n)-1

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