Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import math
- from termcolor import cprint
- _help = False
- _a = None
- _b = None
- _c = None
- def main():
- cprint('Введите help - для получения справки\n')
- db = loadPass()
- flagAuth = False
- while True:
- inp = input()
- x = inp.split()
- cprint('Введите help - для получения справки\n')
- print(inp, '\n')
- if x[0] == 'help':
- help_m()
- elif x[0] == 'LOGIN':
- flagAuth = auth_m(db, x)
- elif x[0] == 'exit':
- cprint('До свидания!\n')
- break
- elif checkAuth(flagAuth):
- if x[0] == 'STORE':
- store_v(x)
- elif x[0] == 'SOLVE':
- solve_w(x)
- else:
- cprint('3 : Синтаксическая ошибка\n')
- def store_v(x):
- global _a
- global _b
- global _c
- _a = int(x[1])
- _b = int(x[2])
- _c = int(x[3])
- print("Сохранение завершено.")
- def solve_w(x):
- global _a
- global _b
- global _c
- try:
- a = int(x[1])
- b = int(x[2])
- c = int(x[3])
- except IndexError:
- a = _a
- b = _b
- c = _c
- if a is None or b is None or c is None:
- print("2 : Не указаны коэффициенты")
- d = b * b - 4 * a * c
- if d > 0:
- x1 = (-b + math.sqrt(d)) / (2 * a)
- x2 = (-b - math.sqrt(d)) / (2 * a)
- print('\nРешение уравнения: ')
- print(x1)
- print(x2)
- elif d == 0:
- x = -b / (2 * a)
- print('\nРешение уравнения: ')
- print(x)
- else:
- print("\nРешений нет")
- def checkAuth(flag):
- if flag:
- return True
- else:
- if _help:
- help_m()
- cprint('Ошибка: Сначала авторизуйтесь\n', 'red')
- return False
- def help_m():
- global _help
- _help = True
- cprint('LOGIN name, pass ← вход в систему', 'yellow')
- cprint('STORE A B C ← запомнить коэффициенты', 'yellow')
- cprint('SOLVE ← решить уравнение с известными коэффициентами', 'yellow')
- cprint('SOLVE A B C ← решить уравнение с указанными коэффициентами', 'yellow')
- cprint('exit — выход\n', 'yellow')
- def loadPass():
- db = {}
- with open("pass.txt") as file:
- for line in file:
- key, value = line.split()
- db[key] = value
- return db
- def auth_m(db, x):
- global _help
- if not _help:
- help_m()
- if len(x) < 3:
- cprint('1 : Ошибка авторизации\n', 'red')
- return
- flagAuth = False
- for user in db:
- if user == x[1]:
- if db.get(user) == x[2]:
- cprint('Авторизация прошла успешно\n', 'blue')
- flagAuth = True
- break
- else:
- cprint('1 : Ошибка авторизации\n', 'red')
- return flagAuth
- main()
Advertisement
Add Comment
Please, Sign In to add comment