首页 > 解决方案 > validate_pin 练习,不要知道我错在哪里,或者我是否是好赛道

问题描述

大家好,我正在尝试从 py 中的 codewars 运行此 validate_pin 代码。

def validate_pin(atm):
    if len(atm) != 4 and len(atm) != 6:
        for i in atm:
            if i not in ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0']:
                return False
                break
            else:
                return True

我是初学者,到目前为止我不知道是否可以,任何帮助/提示/建议表示赞赏

标签: python

解决方案


正确的规格是

ATM 机允许 4 位或 6 位 PIN 码,而 PIN 码只能包含 4 位或 6 位。

所以你的第一个if是错误的,你可能只接受 4 或 6 长度的 PIN,而不是其他尺寸。然后在你的循环中,找到一个有效的数字不会使 PIN 有效,你需要检查所有的字符才能确定,所以等待结束

def validate_pin(atm):
    if len(atm) != 4 and len(atm) != 6:
        return False
    for i in atm:
        if not i.isdigit():
            return False
    return True

推荐阅读