Python编写ATM PIN码验证函数出错,请求排查错误原因
ATM PIN码验证代码错误排查
核心错误点
- 条件判断逻辑错误:代码里的
if len(pin) != 4 or len(pin) != 6逻辑永远为真。因为任何字符串的长度不可能同时等于4和6,不管输入的PIN长度是4、6还是其他值,这个or条件都会成立,直接返回False,导致后续的pin.isdigit()数字验证永远不会执行。
修正方案
将判断条件里的or改为and,这样只有当长度既不是4也不是6时才返回False,否则进入数字验证:
def validate_pin(pin): if len(pin) != 4 and len(pin) != 6: return False else: return pin.isdigit()
也可以简化成更直观的写法:
def validate_pin(pin): return len(pin) in (4, 6) and pin.isdigit()
内容的提问来源于stack exchange,提问作者Natasha44
相关产品推荐
相关产品推荐

