迭代测试 Python3 中的数字输入
Iteratively testing for an input that is numeric in Python3
我必须测试用户的输入是否为数字。否则,我需要再次请求输入。听起来很简单,对吧?但是,检查以下函数
# 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
。该函数第二次正确地询问一个数字,但即使您输入一个数字,它也会 returns None
。
任何人都可以解释一下吗?谢谢。
所以原因是因为您没有返回递归调用。要解决此问题,请将递归调用(最后一行)更改为 return request_number()
我必须测试用户的输入是否为数字。否则,我需要再次请求输入。听起来很简单,对吧?但是,检查以下函数
# 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
。该函数第二次正确地询问一个数字,但即使您输入一个数字,它也会 returns None
。
任何人都可以解释一下吗?谢谢。
所以原因是因为您没有返回递归调用。要解决此问题,请将递归调用(最后一行)更改为 return request_number()