Python用户ID验证优化:实现合法ID输入的重试机制
用户ID验证代码修正
原代码存在两个核心问题:
- 条件判断逻辑错误:
if user_id > 0 or user_id < 3会把所有整数判定为非法(比如输入1时,1>0为真,仍会触发错误提示),完全不符合1-3的验证要求 - 非法ID输入后未触发重试逻辑,直接返回了非法的user_id
以下是修正后的代码,实现仅接受1-3范围内的整数ID,非法输入(非数字/超出范围)时自动重试,直到输入合法为止:
def validate_user(): """验证用户ID,仅返回1-3范围内的合法ID""" try: user_id = int(input('\n 输入客户ID <示例:输入1代表用户ID 1>: ')) # 判断ID是否在合法范围内 if not (1 <= user_id <= 3): print("\n 抱歉,这不是有效的客户编号,请重试...\n") # 递归调用自身,让用户重新输入 return validate_user() # 输入合法,返回ID return user_id except ValueError: print("\n 这不是有效的数字,请重试...\n") # 非数字输入时,递归重试 return validate_user()
修正说明
- 修正范围判断逻辑:用
1 <= user_id <= 3明确合法区间,当ID不在此范围时触发提示并重试 - 补充非法ID的重试逻辑:输入超出范围时,通过递归调用
validate_user()让用户重新输入,直到得到合法ID - 将提示文本翻译成中文,匹配需求场景
内容的提问来源于stack exchange,提问作者Y M
相关产品推荐
相关产品推荐

