Python 巨蟒说:“这是一条蛇。”;索引器:字符串索引超出范围。”;

Python 巨蟒说:“这是一条蛇。”;索引器:字符串索引超出范围。”;,python,python-3.3,Python,Python 3.3,我正在为一个类似于棋盘游戏《智囊团》的游戏编写一些练习代码,但它总是出现这个错误,我不明白为什么它会出现在其中。代码如下: 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

我正在为一个类似于棋盘游戏《智囊团》的游戏编写一些练习代码,但它总是出现这个错误,我不明白为什么它会出现在其中。代码如下:

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)
def Guess_几乎(猜测,回答):
a=''.join([str(v)表示答案中的v])
g=str(猜测)
n=0
am=0
当n<5时:
如果g[n]==a[0]:
am=am+1
如果g[n]==a[2]:
am=am+1
如果g[n]==a[3]:
am=am+1
如果g[n]==a[3]:
am=am+1
n=n+1
返回(上午)
好的,猜测被指定为4个整数,答案是一个包含4个数字的列表。他们在代码后面都有相同的“len”,所以我一点线索都没有

这段代码的要点是将答案转换成一个由4个数字组成的字符串,然后查看这些数字中是否有与猜测相符的数字,并返回总共有多少个相符的数字。

查看这是否有帮助

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)
def Guess_几乎(猜测,回答):
a=''.join([str(v)表示答案中的v])
g=str(猜测)
n=0
am=0
如果len(g)>=5且len(a)>=4:
当n<5时:
如果g[n]==a[0]:
am=am+1
如果g[n]==a[2]:
am=am+1
如果g[n]==a[3]:
am=am+1
如果g[n]==a[3]:
am=am+1
n=n+1
返回(上午)

回答
?在您的通话中1)在哪一行发生这种情况?2) 索引
0233
是有意的还是您的意思是
0123
?您的变量名太短了。如果不知道
Guess
的值,也不可能回答这个问题。另外,我不知道你所说的“制作一个代码盒”是什么意思,但是这个子问题似乎不适合这样做。(子问题本身和子问题都不是。)如果要使用这种方法,请确保检查字符串的长度。换句话说,如果len(g)>=5和len(a)>=5,那么。。。。我猜这就是导致索引超出范围错误的原因。@millimoose:我猜他所说的“代码框”是指为StackOverflow设置代码的格式(这已经在编辑中完成了),所以这不是一个真正的子问题。