Advertisement
Falexom

Untitled

Jul 7th, 2022
1,525
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 6.90 KB | None | 0 0
  1. documents = [
  2.     {'type': 'passport', 'number': '2207 876234', 'name': 'Василий Гупкин'},
  3.     {'type': 'invoice', 'number': '11-2', 'name': 'Геннадий Покемонов'},
  4.     {'type': 'insurance', 'number': '10006', 'name': 'Аристарх Павлов'}
  5. ]
  6. directories = {
  7.     '1': ['2207 876234', '11-2'],
  8.     '2': ['10006'],
  9.     '3': []
  10. }
  11.  
  12.  
  13. def offor():
  14.     lst = directories.keys()
  15.     new = str(lst)
  16.     new = new[11:-2]
  17.     newest = new.replace("''", '')
  18.     return newest
  19.  
  20.  
  21. def num(n):
  22.     error = 'Документ не найден в базе'
  23.     flag = False
  24.     for i in documents:
  25.         if i['number'] == n:
  26.             flag = True
  27.             return (i['name'])
  28.  
  29.     if flag == False:
  30.         return error
  31.  
  32.  
  33. def shelf(n):
  34.     flag = False
  35.     for i in documents:
  36.         if i['number'] == n:
  37.             flag == True
  38.     for key, value in directories.items():
  39.         for j in value:
  40.             if j == n:
  41.                 print("Документ хранится на полке: ", key)
  42.                 return 0
  43.     if flag == False:
  44.         print("Документ не найден в базе")
  45.  
  46.  
  47. def all():
  48.     for i in documents:
  49.         type = str(i['number'])
  50.  
  51.         key = [k for k, v in directories.items() for i in v if i == type][0]
  52.         print('№: ' + str(i['type']) + ', тип: ' + type + ', владелец: ' + str(i['name']) +
  53.               ', полка хранения: ' + key)
  54.  
  55.  
  56. def add(n):
  57.     directories[n] = []
  58.     added = offor()
  59.     return added
  60.  
  61.  
  62. def remover(n):
  63.     item = directories.items()
  64.     have = offor()
  65.     if directories[n] == []:
  66.         del directories[n]
  67.         deleted = offor()
  68.         print("Такой полки не существует. Текущий перечень полок: " + deleted)
  69.         return 0
  70.     else:
  71.         print("На полке есть документа, удалите их перед удалением полки. Текущий перечень полок: " + have)
  72.  
  73.  
  74. def adddock(number, type, owner, shelf):
  75.     new = {'type': type, 'number': number, 'name': owner}
  76.     documents.append(new)
  77.     print(documents)
  78.     directories[shelf] = list([number])
  79.     print(directories)
  80.     print("Документ добавлен. Текущий список документов: ")
  81.     for i in documents:
  82.         numb = str(i['number'])
  83.  
  84.         key = [k for k, v in directories.items() for i in v if i == numb][0]
  85.         print('№: ' + numb + ', тип: ' + str(i['type']) + ', владелец: ' + str(i['name']) +
  86.               ', полка хранения: ' + key)
  87.  
  88.  
  89. def delldock(n):
  90.     flag = False
  91.     for i in range(len(documents)):
  92.         if documents[i]['number'] == n:
  93.             del documents[i]
  94.             flag = True
  95.             break
  96.  
  97.     if flag == False:
  98.         print("Документ не найден в базе.")
  99.         print("Текущий список документов:")
  100.         for i in documents:
  101.             numb = str(i['number'])
  102.  
  103.             key = [k for k, v in directories.items() for i in v if i == numb][0]
  104.             print('№: ' + numb + ', тип: ' + str(i['type']) + ', владелец: ' + i['name'] +
  105.                   ', полка хранения: ' + key)
  106.  
  107.     else:
  108.         print("Документ удален.")
  109.         print("Текущий списко документов: ")
  110.         for i in documents:
  111.             numb = str(i['number'])
  112.  
  113.             key = [k for k, v in directories.items() for i in v if i == numb][0]
  114.             print('№: ' + numb + ', тип: ' + str(i['type']) + ', владелец: ' + i['name'] +
  115.                                                   ', полка хранения: ' + key)
  116.  
  117.  
  118. def swap(number, shelfer):
  119.     #for shelfer in d
  120.     flag = False
  121.     flagg = True
  122.     arr = list(directories.keys())
  123.     for key, value in directories.items():
  124.         for j in value:
  125.             if j == number:
  126.                 directories[shelfer] = directories[key]
  127.     if not shelfer in arr:
  128.         flagg == False
  129.         per = offor()
  130.         print("Такой полки не существует. Текущий перечень полок: " + per)
  131.     else:
  132.         for i in range(len(documents)):
  133.             if documents[i]['number'] == number:
  134.                 flag = True
  135.                 break
  136.  
  137.         if flag == False:
  138.             print("Документ не найден в базе.")
  139.             print("Текущий список документов:")
  140.             for i in documents:
  141.                 numb = str(i['number'])
  142.  
  143.                 key = [k for k, v in directories.items() for i in v if i == numb][0]
  144.                 print('№: ' + numb + ', тип: ' + str(i['type']) + ', владелец: ' + i['name'] +
  145.                       ', полка хранения: ' + key)
  146.  
  147.         else:
  148.             print(documents)
  149.             print(directories)
  150.             print("Документ перемещен.")
  151.             print("Текущий список документов:")
  152.             for i in documents:
  153.                 numb = str(i['number'])
  154.  
  155.                 key = [k for k, v in directories.items() for i in v if i == numb][0]
  156.                 if numb == number:
  157.                     key = shelfer
  158.                 print('№: ' + numb + ', тип: ' + str(i['type']) + ', владелец: ' + i['name'] +
  159.                       ', полка хранения: ' + key)
  160.  
  161.  
  162. def choice():
  163.     print('Введите команду:')
  164.     item = input()
  165.  
  166.     if item == 'p':
  167.         print('Введите номер документа')
  168.         first = input()
  169.         print(num(first))
  170.  
  171.     if item == 's':
  172.         print('Введите номер документа')
  173.         second = input()
  174.         shelf(second)
  175.  
  176.     if item == 'i':
  177.         all()
  178.  
  179.     if item == 'ads':
  180.         print('Введите номер полки:')
  181.         third = input()
  182.         print('Полка добавлена. Текущий перечень полок: ' + add(third))
  183.  
  184.     if item == 'ds':
  185.         print('Введите номер полки:')
  186.         fourth = input()
  187.         remover(fourth)
  188.  
  189.     if item == 'ad':
  190.         print('Введите номер документа:')
  191.         n = input()
  192.         print('Введите тип документа:')
  193.         t = input()
  194.         print('Введите владельца документа:')
  195.         o = input()
  196.         print('Введите полку для хранения:')
  197.         s = input()
  198.         adddock(n, t, o, s)
  199.  
  200.     if item == 'd':
  201.         print('Введите номер документа:')
  202.         n = input()
  203.         delldock(n)
  204.  
  205.     if item == 'm':
  206.         print('Введите номер документа:')
  207.         n = input()
  208.         print('Введите номер полки:')
  209.         s = input()
  210.         swap(n, s)
  211.  
  212. choice()
  213.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement