Advertisement
Guest User

Sklad.py

a guest
Jul 22nd, 2018
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.99 KB | None | 0 0
  1. import re
  2.  
  3. #Вывод меню программы на экран
  4. def main():
  5.     print('''[1] - Добавить запись в базу
  6. [2] - Редактирование записи
  7. [3] - Удалить запись из базы
  8. [4] - Вывести все записи базы на экран
  9. [5] - Очистка всей бызы
  10. [6] - Запись базы в файл
  11. [7] - Загрузка базы из файла
  12. [m] - Меню программы
  13. [q] - Выход из программы''')
  14.  
  15. #Вывод записи на экран
  16. def base_list(key):
  17.     print(key, sklad[key][0].ljust(22, ' '),
  18.           sklad[key][1],
  19.           str(sklad[key][2]).rjust(5, ' '),
  20.           (str(sklad[key][3])+' грн').rjust(9, ' '),
  21.           str(sklad[key][2]*sklad[key][3])+' грн',
  22.           sep=' | ')
  23.  
  24. sklad = {}
  25.  
  26. ext = r"[qQйЙ]"
  27. menu = r"[mMьЬ]"
  28.  
  29. while True:
  30.     select = input('--> ')
  31.  
  32.     #[mMьЬ] - Меню программы
  33.     if re.search(menu, select):
  34.         main()
  35.  
  36.     #[qQйЙ] - Выход из программы
  37.     elif re.search(ext, select):
  38.         break
  39.  
  40.     #[1] - Добавление товара в базу
  41.     elif select == '1':
  42.         key = input('Номер: ')
  43.         if key in sklad.keys():
  44.             print('Запись с таким номером существует!')
  45.         else:
  46.             name = input('Название товара: ')
  47.             edinica = input('Единица измерения: ')
  48.             kol_vo = float(input('Количество: '))
  49.             cena = float(input('Цена за единицу: '))
  50.             sklad.setdefault(key, [name, edinica, kol_vo, cena])
  51.  
  52.     #[2] - Редактирование записи
  53.     elif select == '2':
  54.         print('\nРедактирование записи в базе\n')
  55.         key = input('Введите номер записи: ')
  56.         if key in sklad.keys():
  57.             base_list(key)
  58.         else:
  59.             print('Записи с таким номером нет в базе!')
  60.  
  61.     #[3] - Удаление товара из базы
  62.     elif select == '3':
  63.         key = input('Введите номер записи: ')
  64.         if key != '':
  65.             if key in sklad.keys():
  66.                 sklad.pop(key)
  67.                 print('Запись удалена!')
  68.             else:
  69.                 print('Записи с таким номером нет в базе!')
  70.         print()
  71.  
  72.     #[4] - Вывод всех записей базы на экран
  73.     elif select == '4':
  74.         if len(sklad) != 0:
  75.             for key in sklad:
  76.                 base_list(key)
  77.         else:
  78.             print('База данных пуста!')
  79.  
  80.     #[5] - Очистка всей базы
  81.     elif select == '5':
  82.         sklad.clear()
  83.         print('Все записи базы удалены!')
  84.  
  85.     #[6] - Запись базы в файл
  86.     elif select == '6':
  87.         base = open('base.txt', 'w')
  88.         for key in sklad:
  89.             sklad_base = (key+';'+sklad[key][0]+';'+sklad[key][1]+';'+
  90.                           str(sklad[key][2])+';'+str(sklad[key][3])+
  91.                           '|')
  92.             base.write(sklad_base)
  93.         base.close()
  94.         n = len(sklad)
  95.         print('В файл записано записей: '+str(n))
  96.  
  97.     #[7] - Загрузка базы из файла
  98.     elif select == '7':
  99.         sklad.clear()
  100.         base = open('base.txt', 'r')
  101.  
  102.         for n in base:
  103.             lst = n.split('|')
  104.             for i in lst:
  105.                 if i != '':
  106.                     x = i.split(';')
  107.                     sklad.setdefault(x[0], [x[1],
  108.                                             x[2],
  109.                                             float(x[3]),
  110.                                             float(x[4])])
  111.         base.close()
  112.         n = len(sklad)
  113.         print('\nЗагружено записей: '+str(n)+'\n')
  114.         for key in sklad:
  115.             base_list(key)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement