Advertisement
serd2011

Untitled

Aug 20th, 2020
1,265
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.28 KB | None | 0 0
  1. def getNumberFromUser(text, minValue, maxValue):
  2.     number = None
  3.     while(number == None):
  4.         try:
  5.             number = int(input(text))
  6.         except ValueError:
  7.             pass
  8.         if number == None or number < minValue or number > maxValue:
  9.             print("Некорректный ввод. Повторите.")
  10.             number = None
  11.     return number
  12.  
  13.  
  14. def waitForAnyButton():
  15.     input("Нажмите любую клавишу чтобы выйти в меню...")
  16.  
  17.  
  18. class UserProfile:
  19.     def __init__(self, name, money, business):
  20.         self.__name = name
  21.         self.__money = money
  22.         self.__business = business
  23.  
  24.     def changeName(self, newName):
  25.         self.__name = newName
  26.  
  27.     def addMoney(self, moneyToAdd):
  28.         self.__money += moneyToAdd
  29.  
  30.     def changeBusiness(self, newBusiness):
  31.         self.__business = newBusiness
  32.  
  33.     def __str__(self):
  34.         return f"Имя: {self.__name}\nБаланс: {self.__money}\nБизнес: {self.__business}"
  35.  
  36.  
  37. class Menu:
  38.     def __init__(self, menuList):
  39.         self.__menuList = menuList
  40.         self.__lenght = len(menuList)
  41.         if(self.__lenght == 0):
  42.             raise ValueError("Список должен содержать хотя бы один элемент!")
  43.  
  44.     def start(self):
  45.         while True:
  46.             print("Меню:")
  47.             self.__printMenu()
  48.             actionNumber = getNumberFromUser("Выберите пункт меню >>> ", 0, self.__lenght)
  49.             if actionNumber == self.__lenght:
  50.                 break
  51.             (self.__menuList[actionNumber]["action"])()
  52.  
  53.     def __printMenu(self):
  54.         i = 0
  55.         for i in range(0, self.__lenght):
  56.             print(i, ")",  self.__menuList[i]["title"])
  57.         i += 1
  58.         print(i, ") Выход")
  59.  
  60.  
  61. def businessListAction():
  62.     print("Список бизнесов")
  63.     waitForAnyButton()
  64.  
  65.  
  66. def doWorkAction():
  67.     print("Работа")
  68.     waitForAnyButton()
  69.  
  70.  
  71. name = input("Введите ваше имя: ")
  72. profile = UserProfile(name, 500, None)
  73. print("Ваш профиль:", profile, sep="\n")
  74. menu = Menu([{"title": "Список бизнесов", "action": businessListAction}, {"title": "Работать", "action": doWorkAction}])
  75. menu.start()
  76.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement