【发布时间】:2017-01-04 10:28:41
【问题描述】:
我需要一个排除错误输入并要求再次输入的功能。但在输入错误后,它返回None 而不是新输入。我的代码有什么问题,我该如何解决?
def start():
def inputNumber(answer):
try:
number = int(input(answer))
if number <= 100 and number >= 0:
print('%%%',number,'%%%')
return number
else:
inputNumber('Number is wrong, please input number from 0 to 100: ')
except (ValueError):
inputNumber('It is not a number, please input number from 0 to 100: ')
def checkInput(number2):
print('$$$',number2,'$$$')
if number < 50:
return number2
else:
return checkInput(inputNumber('Input number from 0 to 100: '))
number = 0
print('###',checkInput(inputNumber('Input number from 0 to 100: ')),'###')
start()
start()
这是结果:
输入0到100的数字:777
数字错误,请输入0到100之间的数字:sadf
不是数字,请输入0到100之间的数字:17
%%% 17 %%%
$$$ 无 $$$
TypeError:不可排序的类型:NoneType()
【问题讨论】:
-
Sorry function checkInput() 出错了,不过没关系,反正返回 None。
-
在 Python 中
return是明确的。您必须返回函数的结果。在else和except中的inputNumber之前添加return。
标签: python python-3.x