0

我必须测试用户的输入是否是数字。否则,我需要再次请求输入。听起来很简单,对吧?但是,请检查以下功能

# Request number from user
def request_number():
    number = input("Please, enter the card number you want to check: ")
    if number.isnumeric():
        return int(number)
    elif number.isalpha() or number.isalnum() or number.isdecimal():
        request_number()

如果用户的第一个输入实际上是一个数字,它工作正常4111111111111111

但是,如果用户首先输入一个字符串,例如asbsdl. 该函数正确地要求第二次输入一个数字,但即使您输入一个数字,它也会返回None.

任何人都可以解释一下吗?谢谢。

4

1 回答 1

1

所以原因是因为你没有返回你的递归调用。要解决此问题,请将递归调用(最后一行)更改为return request_number()

于 2017-08-15T19:08:28.473 回答