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