Skip to main content
 首页 » 编程设计

python之谁能告诉我我的功能有什么问题

2025年05月04日14itcoder

我正在处理这个项目,当代码尝试返回“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) 

在你记忆这个函数之前......但是你扔掉了它的返回值