Advertisement
Guest User

Untitled

a guest
Feb 26th, 2020
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.96 KB | None | 0 0
  1. # Функция печати меню программы:
  2. def menu():
  3. print(' Меню '.center(46, '='))
  4. print('| 0) Вывод меню |')
  5. print('| 1) Ввод списка книг |')
  6. print('| 2) Вывод списка |')
  7. print('| 3) Сортировка по количеству книг |')
  8. print('| e) Выход из программы |')
  9. print('=' * 46)
  10.  
  11. # Создание списка книг:
  12. def input_list(n):
  13. list_books = []
  14. for i in range(n):
  15. dict_book = {}
  16. print('Книга %d: ' % (i + 1))
  17. dict_book['author'].append({})
  18. dict_book['author']["name"] = input("Имя автора")
  19. dict_book['author']["surname"] = input("Фамилия автора")
  20. dict_book['author']["patronymic"] = input("Отчество автора")
  21. dict_book['price'] = float(input('Цена: '))
  22. dict_book['count'] = int(input('Количество: '))
  23. list_books.append(dict_book)
  24. return list_books
  25.  
  26. # поиск самой дорогой книги и вывод на экран фимилии её автора:
  27. def get_ex_book():
  28. author = ""
  29. maxPrice = 0
  30. for el in list_books:
  31. if maxPrice < el["price"]:
  32. maxPrice = el["price"]
  33. author = el["author"]["surname"]
  34. return author
  35.  
  36. def set_books_count(author, count):
  37. for el in list_books:
  38. if el["author"]["surname"] == author:
  39. el["count"] = count
  40. return
  41.  
  42. def get_two_dolboeba_s_naibolshim_kolichestvom_raznih_knig():
  43. s = []
  44.  
  45. for el in list_books:
  46. s.append([el["author"]["surname"], 0])
  47. for el in list_books:
  48. if el[1] == list_books["author"]["surname"]:
  49. el[2] = el[2] + 1
  50. A, A2 = "", ""
  51. maxBooksA, maxBooksA2 = 0, 0;
  52. for el in s:
  53. if maxBooksA < el["count"]:
  54. maxBooksA2 = maxBooksA
  55. A2 = A
  56.  
  57. maxBooksA = el[2]
  58. A = el[1]
  59. print(A, maxBooksA)
  60. print(A2, maxBooksA2)
  61.  
  62.  
  63. # Печать списка книг:
  64. def print_list(list_books):
  65. for el in list_books:
  66. print('автор: %-15s, цена: %5.2f количество: %4d ' % ((el['author']["name"] + " " + el['author']["surname"] + " " + el['author']["patronymic"]), el['price'], el['count']))
  67. print()
  68.  
  69.  
  70. # ------------------ Основная программа ----------------
  71. LB = [] # - список книг
  72. menu()
  73. p = input('Введите номер пункта ')
  74. while p not in 'eEеЕ': # выбор любой буквы 'e'
  75. if p == '0':
  76. # Меню:
  77. menu()
  78. elif p == '1':
  79. # Создание списка книг:
  80. n = int(input('Количество книг: '))
  81. LB = input_list(n)
  82. elif p == '2':
  83. # Печать:
  84. print_list(LB)
  85. elif p == '3':
  86. # Сортировка по автору:
  87. ##сортируются в порядкеубывания количества книг
  88. LB.sort(key = (lambda x : x['count']))
  89. LB = LB[::-1]
  90. elif p == '4':
  91. # поиск самой дорогой книги и вывод на экран фами-лии ее автора:
  92. print(get_ex_book())
  93. elif p == "5":
  94. # поиск книги по фамилии автора и изменение количе-ства книг
  95. author = input("Автор: ")
  96. count = input("Количество книг: ")
  97. elif p == "6":
  98. # два автора с наибольшим количеством разных книг
  99.  
  100.  
  101. else:
  102. print('Нет такого пункта меню!')
  103. menu()
  104. p = input('Выберите команду меню (0: Вывод меню): ')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement