Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Функция печати меню программы:
- def menu():
- print(' Меню '.center(46, '='))
- print('| 0) Вывод меню |')
- print('| 1) Ввод списка книг |')
- print('| 2) Вывод списка |')
- print('| 3) Сортировка по количеству книг |')
- print('| e) Выход из программы |')
- print('=' * 46)
- # Создание списка книг:
- def input_list(n):
- list_books = []
- for i in range(n):
- dict_book = {}
- print('Книга %d: ' % (i + 1))
- dict_book['author'].append({})
- dict_book['author']["name"] = input("Имя автора")
- dict_book['author']["surname"] = input("Фамилия автора")
- dict_book['author']["patronymic"] = input("Отчество автора")
- dict_book['price'] = float(input('Цена: '))
- dict_book['count'] = int(input('Количество: '))
- list_books.append(dict_book)
- return list_books
- # поиск самой дорогой книги и вывод на экран фимилии её автора:
- def get_ex_book():
- author = ""
- maxPrice = 0
- for el in list_books:
- if maxPrice < el["price"]:
- maxPrice = el["price"]
- author = el["author"]["surname"]
- return author
- def set_books_count(author, count):
- for el in list_books:
- if el["author"]["surname"] == author:
- el["count"] = count
- return
- def get_two_dolboeba_s_naibolshim_kolichestvom_raznih_knig():
- s = []
- for el in list_books:
- s.append([el["author"]["surname"], 0])
- for el in list_books:
- if el[1] == list_books["author"]["surname"]:
- el[2] = el[2] + 1
- A, A2 = "", ""
- maxBooksA, maxBooksA2 = 0, 0;
- for el in s:
- if maxBooksA < el["count"]:
- maxBooksA2 = maxBooksA
- A2 = A
- maxBooksA = el[2]
- A = el[1]
- print(A, maxBooksA)
- print(A2, maxBooksA2)
- # Печать списка книг:
- def print_list(list_books):
- for el in list_books:
- print('автор: %-15s, цена: %5.2f количество: %4d ' % ((el['author']["name"] + " " + el['author']["surname"] + " " + el['author']["patronymic"]), el['price'], el['count']))
- print()
- # ------------------ Основная программа ----------------
- LB = [] # - список книг
- menu()
- p = input('Введите номер пункта ')
- while p not in 'eEеЕ': # выбор любой буквы 'e'
- if p == '0':
- # Меню:
- menu()
- elif p == '1':
- # Создание списка книг:
- n = int(input('Количество книг: '))
- LB = input_list(n)
- elif p == '2':
- # Печать:
- print_list(LB)
- elif p == '3':
- # Сортировка по автору:
- ##сортируются в порядкеубывания количества книг
- LB.sort(key = (lambda x : x['count']))
- LB = LB[::-1]
- elif p == '4':
- # поиск самой дорогой книги и вывод на экран фами-лии ее автора:
- print(get_ex_book())
- elif p == "5":
- # поиск книги по фамилии автора и изменение количе-ства книг
- author = input("Автор: ")
- count = input("Количество книг: ")
- elif p == "6":
- # два автора с наибольшим количеством разных книг
- else:
- print('Нет такого пункта меню!')
- menu()
- p = input('Выберите команду меню (0: Вывод меню): ')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement