b.py 1.2 KB

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