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()
那是因为你第二次调用时没有return
ing 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
抱歉,我是一个完全的初学者,昨天才开始。
我对以下代码有疑问。所以,只要我输入一个数字,它就可以正常工作,它会 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()
那是因为你第二次调用时没有return
ing 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