Python应该返回str返回'None'

时间:2017-09-25 14:33:52

标签: python function return

我正在制作一个刽子手计划(这是一个家庭作业),这是告诉玩家到目前为止他们已经猜到了什么的部分。这是我的编程:

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']

当我要求打印theWord时,我希望它能够发送下划线和字母_ pp_ e的组合,而是给我None。我无法弄清楚我的问题是否是我在第2行放置theWord的地方,或者是否与其他地方有关,或者它是否完全不同。

2 个答案:

答案 0 :(得分:5)

成功执行完整的for循环后,你必须return

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']))

答案 1 :(得分:0)

只需擦除其他内容并修复缩进。像这样:

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']

Actualy你的功能一无所获。这是因为你的回归从未被召唤过。你只是不要输入其他内容。你写了一个if in语句和一个elif not in,这意味着你覆盖了这两个语句中的所有情况,然后没有意义写一个别的。