密码验证代码有效性咨询:含大写字母的验证逻辑是否正确?
你的代码不可行,以下是严谨的实现方案
首先,你写的代码存在语法错误和逻辑错误:
password.upper = 1是赋值操作,不能直接放在if条件中,Python会抛出语法异常- 即使修正语法,这种写法也完全无法实现你需要的密码验证逻辑
针对你提出的两种验证要求,分别给出正确的实现:
要求一:密码长度≥8位且包含至少一个大写字母
password = input("What is your password?: ") # 验证是否有大写字母,同时长度≥8 has_upper = any(c.isupper() for c in password) if len(password) >= 8 and has_upper: print("密码符合要求") else: print("密码不符合要求:需要长度≥8位且包含至少一个大写字母")
要求二:仅要求密码包含至少一个大写字母
password = input("What is your password?: ") has_upper = any(c.isupper() for c in password) if has_upper: print("密码符合要求") else: print("密码不符合要求:需要包含至少一个大写字母")
关键逻辑说明
any(c.isupper() for c in password):遍历密码的每个字符,只要有一个字符是大写字母,就返回True,高效判断是否包含大写字母len(password) >=8:直接获取密码长度,判断是否满足最小长度要求
内容的提问来源于stack exchange,提问作者Emmanuel Yeboah
相关产品推荐
相关产品推荐

