我正在处理这个项目,当代码尝试返回“guess”变量时,我一直遇到这个问题,而不是返回“guess”的值,而是转到第 9 行,它将值转换为字符串某种原因,然后返回。当我在某些东西中使用返回值时,Python 说该值是“NoneType”。
def ask_question(max_length, rowOrCol, guessNumber):
guess = raw_input("What is the "+rowOrCol+" number of your "+guessNumber+" guess? ")
try:
guess = int(guess)
if guess <= max_length:
return guess
else:
print "That number was too big, it must be no larger then " +str(max_length)
ask_question(max_length, rowOrCol, guessNumber)
except(TypeError):
print "Only numbers are accepted, please try again!"
ask_question(max_length, rowOrCol, guessNumber)
我用这一行调用函数:
first_guess_row = ask_question(4, "row", "first")
有什么我想念的吗?
请您参考如下方法:
当然你所有的分支都需要返回......
...
else:
print "That number was too big, it must be no larger then " +str(max_length)
return ask_question(max_length, rowOrCol, guessNumber)
except(TypeError):
print "Only numbers are accepted, please try again!"
return ask_question(max_length, rowOrCol, guessNumber)
在你记忆这个函数之前......但是你扔掉了它的返回值
