在Python中不能使布尔值为全局值



我对编程非常陌生,我正在创建一个函数,该函数需要一个或多个字母并检查它是否在一个单词内。我需要控制猜测的次数,所以我想设置一个布尔值来测试它是否正确。需要说明的是,我已经看了很多关于这类问题的答案,但还是不明白这个例子是怎么回事。

我似乎不能使bool '正确'返回True,即使if语句为真。在查找这个之后,似乎使它成为一个全局变量应该解决这个问题,但它不适合我。它仍然返回False。我该如何解决这个问题?我正在使用Python 2.5.

任何帮助都将非常感激!谢谢!

randomWord = choose_word(wordlist)
guessedLetters = []   
correct = False
def userGuesses(letters):       
    newLetters = list(letters)          
    global correct      #change correct to global
    for i in range(len(letters)):   
        curLetter = letters[i]
        for j in range(len(randomWord)):    
            if curLetter == randomWord[j]: 
                guessedLetters[j] = randomWord[j]
                correct = True              
            else: 

                correct = False

    return guessedLetters               

代码中的一些问题:

  • randomWord似乎没有定义。
  • guessedLetters似乎也没有定义。
  • 函数
  • 有两个返回值

如果你的代码运行过,那么它可能永远不会进入内循环。在不同的地方添加一些print语句,看看那个地方的代码是否运行。

还要注意,您不需要为了稍后访问letters[i]而执行for j in range(len(letters))。只做:

for letter in letters:
    # your code

它更短,效果也一样。

祝你好运!

编辑:试着在进入函数之前打印出randomWord,看看该变量的值是什么

相关内容

  • 没有找到相关文章

最新更新