Python密码有效性校验功能实现:按指定规则验证密码
密码校验功能实现与修正
需求说明
- 密码需满足以下全部条件:
- 包含至少一个大写英文字母
- 包含至少一个数字(0-9)
- 长度不超过8个字符
- 验证通过输出
Successful Password,未通过输出Try again
原代码问题分析
- 数字检测范围遗漏0,无法识别包含0的合法密码
- 嵌套循环逻辑混乱,无法正确判断密码是否同时满足大写字母和数字的要求
- 长度判断错误:原代码限制密码长度必须小于8,不符合"不超过8"的需求
- 输出文本不匹配:未通过时输出"Fail",与需求的"Try again"不符
修正后的实现代码
def pass_check(password): has_upper = False has_digit = False # 先检查长度是否超标 if len(password) > 8: return False # 遍历字符检测大写字母和数字 for char in password: if char.isupper(): has_upper = True if char.isdigit(): has_digit = True # 提前结束循环,提升效率 if has_upper and has_digit: break # 返回所有条件的校验结果 return has_upper and has_digit password = input("Please enter your password: ") if pass_check(password): print("Successful Password") else: print("Try again")
代码说明
- 简化参数传递:仅传入密码字符串,无需额外预处理数据
- 全面数字检测:使用
str.isdigit()方法覆盖0-9所有数字 - 高效逻辑判断:通过标记变量跟踪条件满足情况,单次遍历即可完成检测
- 严格匹配需求:长度判断改为"不超过8",输出文本完全符合要求
内容的提问来源于stack exchange,提问作者saffieee
相关产品推荐
相关产品推荐

