You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

85 rivejä
3.0 KiB

5 vuotta sitten
  1. #!/usr/bin/env python3
  2. #title :FA-2.py
  3. #description :Final Assignment: Bagagekluizen
  4. #author :Marcel Haazen
  5. #email :marcel@haazen.xyz
  6. #date :04-10-2019 - 21:25
  7. #version :0.1
  8. #usage :python3 FA-2.py
  9. #notes :
  10. #python_version :3.7.4
  11. #==============================================================================
  12. exit = False
  13. def find_missing(lst):
  14. return [x for x in range(lst[0], lst[-1]+1)
  15. if x not in lst]
  16. def toon_aantal_kluizen_vrij():
  17. num_lines = sum(1 for line in open("kluizen.txt"))
  18. free = 12 - num_lines
  19. return free
  20. def nieuwe_kluis():
  21. file = open("kluizen.txt", "r+")
  22. gebruikt = []
  23. rules = file.readlines()
  24. for x in rules:
  25. y = x.split(";")
  26. gebruikt.append(int(y[0]))
  27. gebruikt.sort()
  28. kluisnummers = find_missing(gebruikt)
  29. for rule in rules:
  30. y = rule.split(";")
  31. if (len(kluisnummers)) > 0:
  32. kluis_code = str(input("Geef een code op voor uw kluis (minimaal 4 karakters):"))
  33. if len(kluis_code) >= 4:
  34. toegewezen_kluisnummer = str(kluisnummers[0])
  35. file.write(toegewezen_kluisnummer + ";" + kluis_code + "\n")
  36. return "\nJe nieuwe kluisnummer is: " + str(toegewezen_kluisnummer) + "\n"
  37. else:
  38. print("De opgegeven code is te kort (minimaal 4 karakters)")
  39. else:
  40. return "\ner is niks meer vrij\n"
  41. file.close()
  42. def kluis_openen(kluisnummer,code):
  43. file = open("kluizen.txt", "r+")
  44. rules = file.readlines()
  45. for rule in rules:
  46. if str(kluisnummer) + ";" + code + "\n" == rule:
  47. return "\nDe kluis is geopend\n"
  48. else:
  49. return "\nDe ingevoerde gegevens zijn niet correct\n"
  50. file.close()
  51. def kluis_teruggeven(kluisnummer,code):
  52. file = open("kluizen.txt", "r+")
  53. rules = file.readlines()
  54. file.close()
  55. for rule in rules:
  56. if str(kluisnummer) + ";" + code + "\n" == rule:
  57. rules.remove(str(kluisnummer) + ";" + code + "\n")
  58. file = open("kluizen.txt", "w")
  59. file.writelines(rules)
  60. file.close()
  61. return "\nDe kluis is vrijgegeven\n"
  62. return "\nDe ingevoerde gegevens zijn niet correct\n"
  63. while exit != True:
  64. print("1: Ik wil weten hoeveel kluizen nog vrij zijn \n2: Ik wil een nieuwe kluis \n3: Ik wil even iets uit mijn kluis halen \n4: Ik geef mijn kluis terug\n5: ik wil stoppen")
  65. num = int(input("Kies wat je wilt doen: "))
  66. if num == 5:
  67. exit = True
  68. elif num == 1:
  69. print("\nEr zijn",toon_aantal_kluizen_vrij(),"kluizen vrij \n")
  70. elif num == 2:
  71. print(nieuwe_kluis())
  72. elif num == 3:
  73. kn = input("wat is je kluisnummer? ")
  74. kc = input("wat is je code? ")
  75. print(kluis_openen(kn,kc))
  76. elif num == 4:
  77. kn = input("wat is je kluisnummer? ")
  78. kc = input("wat is je code? ")
  79. print(kluis_teruggeven(kn,kc))