Ich brauche eine Funktion, die falsche Eingabe ausnimmt und erneut eingeben möchte. Aber nach falscher Eingabe gibt es None
statt neuer Eingabe zurück. Was ist falsch an meinem Code und wie kann ich das lösen?Funktion gibt keine nach falscher Eingabe zurück
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()
Dies ist das Ergebnis:
Input number from 0 to 100: 777
Number is wrong, please input number from 0 to 100: sadf
It is not a number, please input number from 0 to 100: 17
%%% 17 %%%
$$$ None $$$
TypeError: unorderable types: NoneType() < int()
Leider Funktion checkInput() ist falsch zu fangen, aber es spielt keine Rolle, es keine irgendwie zurückgibt. –
In Python ist 'return' explizit. Sie müssen das Ergebnis einer Funktion zurückgeben. Fügen Sie 'return' vor' inputNumber' in 'else' und' except' hinzu. –