| 1234567891011121314151617181920212223 | import re
def checkpw(a, b, l, pw):
    print(a, b, l, pw)
    c = pw.count(l)
    if a <= c <= b:
        return True
    return False
def main():
    patt = re.compile("^(\d+)-(\d+) (.): (.+)$")
    with open("input2.txt") as file:
        lines = file.readlines()
    ln = []
    for line in lines:
        m = re.match(patt, line)
        ln.append([int(m.group(1)), int(m.group(2)), m.group(3), m.group(4)])
    valid = [pw for pw in ln if checkpw(pw[0], pw[1], pw[2], pw[3])]
    print(f"There are {len(valid)} valid passwords out of {len(ln)}.")
if __name__ == "__main__":
    main()
 |