Python说:“IndexError:字符串索引超出范围。”

时间:2013-02-14 16:48:28

标签: python python-3.3

我正在为类似于棋盘游戏MasterMind的游戏制作一些练习代码 - 并且它不断出现这个错误,我无法弄清楚它为什么会这样做。这是代码:

def Guess_Almost (Guess, Answer):
    a = ''.join([str(v) for v in Answer])
    g = str(Guess)
    n = 0
    am = 0
    while n < 5:
        if g[n] == a[0]:
            am = am + 1
        if g[n] == a[2]:
            am = am + 1
        if g[n] == a[3]:
            am = am + 1
        if g[n] == a[3]:
            am = am + 1
        n = n + 1
    return(am)

好的,Guess被指定为4个整数,而Answer是一个包含4个数字的列表。在代码之后它们都有相同的'len',所以我没有线索。

这段代码的意思是将Answer变成一个包含4个数字的字符串,看看这些数字中是否有任何一个与猜测相匹配,并返回总共匹配的数量。

1 个答案:

答案 0 :(得分:0)

看看这是否有帮助

def Guess_Almost (Guess, Answer):

   a = ''.join([str(v) for v in Answer])
   g = str(Guess)
   n = 0
   am = 0
   if len(g) >= 5 and len(a) >=4:
     while n < 5:
        if g[n] == a[0]:
           am = am + 1
        if g[n] == a[2]:
           am = am + 1
        if g[n] == a[3]:
            am = am + 1
        if g[n] == a[3]:
          am = am + 1
         n = n + 1
  return(am)