Python没有给出正确的返回值

时间:2019-03-23 10:50:01

标签: python input return-value

我正在编写一个程序,要求用户输入并检查它是否为整数。如果是,则将其转换为整数并返回该值。如果用户键入的不是数字,则程序会要求用户再次输入数字。如果用户仅按下Enter键并保持输入为空,则它将返回默认值。

def inputNumber(message):
    number = input(message)
    if number !='':
        if number.isdigit():
            number = int(number)
            return number
        else:
            print("This is not a whole number! Try again.")
            inputNumber(message)
    else:
        number = int(1000)
        return number

在我写信之前,程序运行良好。如果我写例如“ x”,它会说再试一次:

Max cooldown(secs): x
This is not a whole number! Try again.
Max cooldown(secs): 

但是,如果我按下输入为空的输入,则不会返回默认值,而是返回None。这只有在我写信出错时才会发生。

1 个答案:

答案 0 :(得分:0)

在输入不是数字的情况下,您递归调用inputNumber,在这种情况下,您应该使用:

return inputNumber(message)