Gorcupt

3-3

Mar 28th, 2022
29
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.17 KB | None | 0 0
  1. import math
  2. from termcolor import cprint
  3.  
  4. _help = False
  5. _a = None
  6. _b = None
  7. _c = None
  8.  
  9.  
  10. def main():
  11. cprint('Введите help - для получения справки\n')
  12. db = loadPass()
  13. flagAuth = False
  14. while True:
  15. inp = input()
  16. x = inp.split()
  17. cprint('Введите help - для получения справки\n')
  18. print(inp, '\n')
  19. if x[0] == 'help':
  20. help_m()
  21. elif x[0] == 'LOGIN':
  22. flagAuth = auth_m(db, x)
  23. elif x[0] == 'exit':
  24. cprint('До свидания!\n')
  25. break
  26. elif checkAuth(flagAuth):
  27. if x[0] == 'STORE':
  28. store_v(x)
  29. elif x[0] == 'SOLVE':
  30. solve_w(x)
  31. else:
  32. cprint('3 : Синтаксическая ошибка\n')
  33.  
  34.  
  35. def store_v(x):
  36. global _a
  37. global _b
  38. global _c
  39. _a = int(x[1])
  40. _b = int(x[2])
  41. _c = int(x[3])
  42. print("Сохранение завершено.")
  43.  
  44.  
  45. def solve_w(x):
  46. global _a
  47. global _b
  48. global _c
  49. try:
  50. a = int(x[1])
  51. b = int(x[2])
  52. c = int(x[3])
  53. except IndexError:
  54. a = _a
  55. b = _b
  56. c = _c
  57. if a is None or b is None or c is None:
  58. print("2 : Не указаны коэффициенты")
  59. d = b * b - 4 * a * c
  60. if d > 0:
  61. x1 = (-b + math.sqrt(d)) / (2 * a)
  62. x2 = (-b - math.sqrt(d)) / (2 * a)
  63. print('\nРешение уравнения: ')
  64. print(x1)
  65. print(x2)
  66. elif d == 0:
  67. x = -b / (2 * a)
  68. print('\nРешение уравнения: ')
  69. print(x)
  70. else:
  71. print("\nРешений нет")
  72.  
  73.  
  74. def checkAuth(flag):
  75. if flag:
  76. return True
  77. else:
  78. if _help:
  79. help_m()
  80. cprint('Ошибка: Сначала авторизуйтесь\n', 'red')
  81. return False
  82.  
  83.  
  84. def help_m():
  85. global _help
  86. _help = True
  87. cprint('LOGIN name, pass ← вход в систему', 'yellow')
  88. cprint('STORE A B C ← запомнить коэффициенты', 'yellow')
  89. cprint('SOLVE ← решить уравнение с известными коэффициентами', 'yellow')
  90. cprint('SOLVE A B C ← решить уравнение с указанными коэффициентами', 'yellow')
  91. cprint('exit — выход\n', 'yellow')
  92.  
  93.  
  94. def loadPass():
  95. db = {}
  96. with open("pass.txt") as file:
  97. for line in file:
  98. key, value = line.split()
  99. db[key] = value
  100. return db
  101.  
  102.  
  103. def auth_m(db, x):
  104. global _help
  105. if not _help:
  106. help_m()
  107. if len(x) < 3:
  108. cprint('1 : Ошибка авторизации\n', 'red')
  109. return
  110. flagAuth = False
  111. for user in db:
  112. if user == x[1]:
  113. if db.get(user) == x[2]:
  114. cprint('Авторизация прошла успешно\n', 'blue')
  115. flagAuth = True
  116. break
  117. else:
  118. cprint('1 : Ошибка авторизации\n', 'red')
  119. return flagAuth
  120.  
  121.  
  122. main()
  123.  
Advertisement
Add Comment
Please, Sign In to add comment