Python 代码 returns 'NoneType' 而不是 'int'

Python Code returns 'NoneType' instead of 'int'

抱歉,我是一个完全的初学者,昨天才开始。

我对以下代码有疑问。所以,只要我输入一个数字,它就可以正常工作,它会 return 和 'int' (这就是我需要的)。但是,如果我再次输入触发 number_validation() 函数的任何其他内容,它将 return 变为 'NoneType'。知道为什么或我做错了什么吗?

感谢您的帮助!

def number_validation():
    number = input("Please enter a number: ")
    if number == "":
        print("You need to enter a number")
        number_validation()
    elif number != "":
        if number.isdigit() == True:
            number = int(number)
            return number
        else:
            print("Numbers only, no spaces, please try again!")
            number_validation()

那是因为你第二次调用时没有returning number_validation

In [210]: def number_validation():
     ...:     number = input("Please enter a number: ")
     ...:     if number == "":
     ...:         print("You need to enter a number")
     ...:         number_validation()
     ...:     elif number != "":
     ...:         if number.isdigit() == True:
     ...:             number = int(number)
     ...:             return number
     ...:         else:
     ...:             print("Numbers only, no spaces, please try again!")
     ...:             return number_validation()      # Note the return here
     ...:

In [211]: number_validation()
Please enter a number: a
Numbers only, no spaces, please try again!
Please enter a number: 10
Out[211]: 10

使用您的原始代码,您到达函数末尾时没有 returning 任何内容,因此 Python 将隐式 return a None