Python 2.7 Hangman程序中的多个错误

Python 2.7 Hangman程序中的多个错误,python-2.7,2d-games,Python 2.7,2d Games,我最近一直在自学python编程,并决定制作这个游戏。除了几件事外,我大部分时间都很成功 当输入错误的字母时,该字母会被附加到错误的字母数组中,其数量与用户字母在游戏空间数组中的数量相等。例如:如果我为wordtarget键入“the”,我会在错误的字母数组中打印两次t、h和e。无论字母是什么,都会进入错误的字母数组 代码: 我猜问题在于我正在运行的for循环,以及我检查正确答案的方式,但无法找出答案。检查字母的循环似乎是你的问题。尝试将其替换为: position = 0

我最近一直在自学python编程,并决定制作这个游戏。除了几件事外,我大部分时间都很成功

  • 当输入错误的字母时,该字母会被附加到错误的字母数组中,其数量与用户字母在游戏空间数组中的数量相等。例如:如果我为wordtarget键入“the”,我会在错误的字母数组中打印两次t、h和e。无论字母是什么,都会进入错误的字母数组
  • 代码:


    我猜问题在于我正在运行的for循环,以及我检查正确答案的方式,但无法找出答案。

    检查字母的循环似乎是你的问题。尝试将其替换为:

            position = 0
            ptr = wordTarget.find(userLetter, position)
            while ptr != -1:
                gameSpace[ptr] = userLetter
                position = ptr + 1
                ptr =  wordTarget.find(userLetter, position)
    
            if position == 0: # no match ever found
                print "letter is incorrect, try again"
                wrongLetter.append(userLetter)
    

    另外,将原来的for循环替换为while(“.join(gameSpace)!=wordTarget):,这样你就可以开始了。

    检查字母的循环似乎是你的问题。尝试将其替换为:

            position = 0
            ptr = wordTarget.find(userLetter, position)
            while ptr != -1:
                gameSpace[ptr] = userLetter
                position = ptr + 1
                ptr =  wordTarget.find(userLetter, position)
    
            if position == 0: # no match ever found
                print "letter is incorrect, try again"
                wrongLetter.append(userLetter)
    

    另外,将原来的for循环替换为
    while(“”.join(gameSpace)!=wordTarget):
    ,您应该可以开始了。

    您需要在问题中添加代码的相关部分。不是所有的代码,也没有链接到一些非现场的地方。如何设置
    gameSpace
    wordTarget
    值?它们是字符串、列表还是其他东西?gameSpace是一个数组,如果猜对了,它可以存储空格和字母。wordTarget是用户输入,是一个变量。嗯,“数组”是指
    列表
    (例如
    [“a”、“b”、“c”]
    )还是仅仅是一个字符串,如
    “abc”
    ?实际上,关于
    wordTarget
    的问题是一样的,不管它来自哪里。它是什么类型的?如果您不确定是否有Python词汇表可以用单词解释(初学者完全可以理解),请显示设置这些变量的代码。gamespace是一个列表,由单词每个字母的下划线组成。wordTarget只是一个字符串,您需要在问题中添加代码的相关部分。不是所有的代码,也没有链接到一些非现场的地方。如何设置
    gameSpace
    wordTarget
    值?它们是字符串、列表还是其他东西?gameSpace是一个数组,如果猜对了,它可以存储空格和字母。wordTarget是用户输入,是一个变量。嗯,“数组”是指
    列表
    (例如
    [“a”、“b”、“c”]
    )还是仅仅是一个字符串,如
    “abc”
    ?实际上,关于
    wordTarget
    的问题是一样的,不管它来自哪里。它是什么类型的?如果您不确定是否有Python词汇表可以用单词解释(初学者完全可以理解),请显示设置这些变量的代码。gamespace是一个列表,由单词每个字母的下划线组成。wordTarget只是一个字符串,wordTarget变量是存储单词的位置,而不是字母。给我一秒钟,我将把getletter代码发布到这里。我假设userLetter中的值就是输入的字母。如果这是真的,那么
    wordTarget.find(position,userLetter)
    意味着“查看字符串wordTarget,从position开始,并找到userLetter的下一个实例。”答案中的代码在
    getLetter()
    函数调用之后立即开始。我编辑了代码,得到了错误:ptr=wordTarget.find(position,userLetter). 属性错误:“str”对象没有属性“Find”Arrgh-typo<代码>查找
    应该是
    查找
    。我主要使用SQL Server编写代码,它不区分大小写。另一个错误。同一行,但现在它说切片索引必须是整数或无,或者有一个_索引_方法wordTarget变量是存储单词的位置,而不是字母。给我一秒钟,我将把getletter代码发布到这里。我假设userLetter中的值就是输入的字母。如果这是真的,那么
    wordTarget.find(position,userLetter)
    意味着“查看字符串wordTarget,从position开始,并找到userLetter的下一个实例。”答案中的代码在
    getLetter()
    函数调用之后立即开始。我编辑了代码,得到了错误:ptr=wordTarget.find(position,userLetter). 属性错误:“str”对象没有属性“Find”Arrgh-typo<代码>查找
    应该是
    查找
    。我主要使用SQL Server编写代码,它不区分大小写。另一个错误。同一行,但现在它说切片索引必须是整数或无,或者有一个_索引_方法