a.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import os, argparse, re
  2. def validate_line(min, max, letter, password):
  3. count = password.count(letter)
  4. if count < min or count > max:
  5. print(f"Min: {min}, Max: {max}, Letter: {letter}, Password: {password}, Counted: {count}")
  6. return 0
  7. else:
  8. return 1
  9. def check_line(str):
  10. m = re.search('([0-9]*)-([0-9]*) (.): (.*)', str)
  11. return validate_line(int(m.group(1)), int(m.group(2)), m.group(3), m.group(4))
  12. def solve_task(filename):
  13. valid_passwords = 0
  14. with open(filename) as infile:
  15. for raw_line in infile:
  16. line = raw_line.rstrip()
  17. valid_passwords += check_line(line)
  18. print(f"Valid passwords: {valid_passwords}")
  19. os.system("pause")
  20. def parse_arguments():
  21. parser = argparse.ArgumentParser(description="Script that solves the case",epilog="Have a nice day!")
  22. parser.add_argument('filename', nargs='?', default="example.txt", help='Input file')
  23. args = parser.parse_args()
  24. return args
  25. def main():
  26. args = parse_arguments()
  27. solve_task(args.filename)
  28. if __name__ == "__main__":
  29. main()