Python应该返回str returns';无';
我正在做一个刽子手程序(这是一个家庭作业),这是它告诉玩家到目前为止他们猜到了什么。以下是我的编程:Python应该返回str returns';无';,python,function,return,Python,Function,Return,我正在做一个刽子手程序(这是一个家庭作业),这是它告诉玩家到目前为止他们猜到了什么。以下是我的编程: def getGuessedWord(secretWord, lettersGuessed): theWord='' for char in secretWord: if char not in lettersGuessed: char='_ ' theWord+=char elif char in lettersGuessed:
def getGuessedWord(secretWord, lettersGuessed):
theWord=''
for char in secretWord:
if char not in lettersGuessed:
char='_ '
theWord+=char
elif char in lettersGuessed:
theWord+=char
else:
return theWord
print (getGuessedWord('apple', ['e', 't', 'i', 'p', 'r']
当我要求它打印出
这个词时,我希望它能发出下划线和字母的组合\pp\ue
,但它却给了我无。我不知道我的问题是我把这个词放在第2行的什么地方,或者它是否与else有关,或者它是否在完全不同的地方。在成功执行整个for循环后,您必须返回一些内容:
def getGuessedWord(secretWord, lettersGuessed):
theWord=''
for char in secretWord:
if char not in lettersGuessed:
char='_ '
theWord+=char
elif char in lettersGuessed:
theWord+=char
return theWord #here, returning theWord
print (getGuessedWord('apple', ['e', 't', 'i', 'p', 'r']))
只需删除此内容,然后修复缩进。像这样:
def getGuessedWord(secretWord, lettersGuessed):
theWord=''
for char in secretWord:
if char not in lettersGuessed:
char='_ '
theWord+=char
elif char in lettersGuessed:
theWord+=char
return theWord
print (getGuessedWord('apple', ['e', 't', 'i', 'p', 'r']
实际上,您的函数没有返回任何内容。那是因为你的回归从未被召唤过。你只需要不进入这个,其他的。你写了一个if-in语句和一个elif-not-in语句,这意味着你在这两个语句中涵盖了所有情况,然后没有理由写一个else。你希望什么时候执行else
?如果char
中的char not in lettersGuessed
为False,而char in lettersGuessed
为False,那么char
将具有什么值?这正是您的代码吗?它有空格错误。您的return语句放错了位置,它应该在for循环之后。您的for
循环必须在未命中内部第二个else
子句的情况下结束。您可能需要在函数末尾返回单词?1)请修复缩进。2) 如果char
在lettersGuessed
中,而char
不在lettersGuessed
中,则会准确返回单词
,这相当于从不。例如,您的else
块从不运行。删除else
和dedent返回单词
两个级别。