Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python应该返回str returns';无';_Python_Function_Return - Fatal编程技术网

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
返回单词
两个级别。