我正在制作一个刽子手计划(这是一个家庭作业),这是告诉玩家到目前为止他们已经猜到了什么的部分。这是我的编程:
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
的地方,或者是否与其他地方有关,或者它是否完全不同。
答案 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,这意味着你覆盖了这两个语句中的所有情况,然后没有意义写一个别的。