无法在Python中使布尔全局化

2024-06-09 23:25:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我是非常新的编程和正在创建一个函数,它接受一个或多个字母,并检查它是否在一个单词内。我需要控制猜测的数量,所以我想设置一个布尔值来测试它是否正确。为了清楚起见,我已经看过很多其他关于这类问题的答案,但不知道在这个案例中发生了什么。在

即使if语句为True,我似乎也不能使bool'correct'返回为真。在查了这个之后,似乎把它作为一个全局变量应该可以解决这个问题,但它对我不起作用。它仍然返回False。 我怎么解决这个问题?我使用的是python2.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               

Tags: 函数infalsetrueforlenif编程
1条回答
网友
1楼 · 发布于 2024-06-09 23:25:35

准则中的一些问题:

  • randomWord似乎未定义。在
  • guessedLetters似乎也未定义。在
  • 函数中有2个返回

如果你的代码真的运行了,那么它可能永远不会进入内部循环。在不同的位置添加一些print语句,以查看此时的代码是否运行。在

还请注意,您不需要做for j in range(len(letters))只是为了以后访问letters[i]。就这么做吧:

for letter in letters:
    # your code

它比较短,效果也一样。内环也一样。在

祝你好运!在

Editted:在输入函数之前,尝试打印出randomWord,以查看该变量的值。在

相关问题 更多 >