【问题标题】:in python, for -: 'str' and 'int'在 python 中,对于 -: 'str' 和 'int'
【发布时间】:2014-08-03 17:07:56
【问题描述】:

我想做一个编码算法。所以我写了这段代码。但不起作用(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

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

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

文件“”,第 1 行,在

编码("1101")

文件“”,第 6 行,在编码中

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

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

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

【问题讨论】:

    标签: python algorithm encode


    【解决方案1】:
    elif i==(len(n-1))
    

    这是有问题的行。您正在尝试从字符串中减去 1。我认为你真正想做的是:

    len(n)-1
    

    为了避免此类错误,您应该为变量命名。 input_string 可能很适合这里。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-16
      • 2011-07-21
      • 1970-01-01
      • 2023-03-25
      • 2014-04-23
      • 2022-01-19
      相关资源
      最近更新 更多