[英]Python supposed to return str returns 'None'
我正在研究一个子手程序(这是一项家庭作业),这是它告诉玩家到目前为止他们猜到了什么的部分。 这是我的程序:
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
,或者它是否与else有关,或者它是否完全不同。
成功执行整个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']))
只需删除其他内容并修复缩进即可。 像这样:
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了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.