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

0 投票
1 回答
646 浏览
提问于 2025-04-17 15:54

我正在写一些练习代码,做一个类似于桌游“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)

好吧,猜测的部分是指定为4个整数,而答案是一个包含4个数字的列表。运行代码后,它们的长度是一样的,所以我完全不知道问题出在哪里。

这段代码的目的是把答案转换成一个包含4个数字的字符串,然后看看这些数字中有没有和猜测的数字匹配的,最后返回总共有多少个匹配。

1 个回答

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)

撰写回答