Предмет: Информатика, автор: aidarasanaliev

(Python)
Напишите программу для работы с рейтингами фильмов. Она может обрабатывать следующие команды:
add - добавить фильм с указанным названием. Если фильм с таким названием существует, выводите сообщение об ошибке. Рейтинги нового фильма - пустой словарь.
delete - удалить фильм с указанным названием. Если фильма с таким названием не существует, выводите сообщение об ошибке.
list - вывести список фильмов в виде таблицы (название, средний рейтинг). Если у фильма нет рейтингов, выводите вместо рейтинга сообщение, что фильм "не оценивался".
rate - добавить оценку к фильму по названию. Нужно ввести имя пользователя и количество баллов от 1 до 10 (оно может быть дробным).
Проверяйте, что оценка попадает в интервал от 0 до 10, предполагайте, что пользователь вводит только числа.
Если пользователь ввёл оценку 0, удалите оценку этого пользователя.
Если пользователь с указанным именем уже оценивал этот фильм, замените оценку на новую.
find - найти фильм по названию и показать его название и все оценки в виде таблицы (имя пользователя, оценка) + среднюю оценку. Если у фильма нет рейтингов, выводите сообщение, что фильм "не оценивался".
Напишите главный цикл приложения, который выводит меню и обрабатывает команды, используйте бесконечный цикл.
Обрабатывайте команду exit для выхода.
Выводите сообщение, если пользователь ввёл неправильную команду, и продолжайте работу.
Оформите пожалуйста вывод аккуратно (аналогично телефонной книге).
Выносите повторяющийся код и обработку каждой команды в функции.

Ответы

Автор ответа: mrpansar
0

dictionary = {}

while True:

   command = input('Введите команду: ')

   if command != 'exit' and command != 'list' and command != 'add' and command !=  'delete' and command != 'rate' and command != 'find':

       print('Error')

       continue

   if command == 'exit':

       break

   if command == 'list':

       for key in dictionary.keys():

           average = 0

           if len(dictionary[key]) == 0:

               print(f'Фильм {key} не оценивался')

           else:

               for key1 in dictionary[key].keys():

                   average += dictionary[key][key1]

               print(f'{key} средняя оценка: {average / len(dictionary[key])}')

       continue

   film = input('Введите название фильма: ')

   if command == 'add':

       if film in dictionary:

           print('Error')

       else:

           dictionary[film] = {}

   elif command == 'delete':

       if film in dictionary:

           del dictionary[film]

       else:

           print('Error')

   elif command == 'rate':

       name = input('Имя пользователя: ')

       rate = float(input('Оценка: '))

       if 0 < rate <= 10:

           dictionary[film][name] = rate

       else:

           print('Error')

   elif command == 'find':

       if len(dictionary[film]) == 0:

           print('Фильм не оценивался')

           continue

       for name, rate in dictionary[film].items():

           print(f'{name} поставил оценку: {rate}')

       average = 0

       for key in dictionary[film].keys():

           average += dictionary[film][key]

       print(f'Средняя оценка: {average / len(dictionary[film])}')

Похожие вопросы
Предмет: Русский язык, автор: axenta
Предмет: Русский язык, автор: ARSmaloletka
Предмет: Русский язык, автор: Аноним

Ребят ,надо написать изложение по тексту внизу ,не более 75 слов.

 

 

 

Прожить жизнь с достоинством и получить радость человеку позволяет настоящая цель. Если человек живет, чтобы приносить людям добро, облегчать их страдания при болезнях, давать людям радость, то он ставит себе цель, достойную человека. Если человек ставит перед собой задачу приобрести все элементарные материальные блага: машину, дачу, мебельный гарнитур, - он допускает роковую ошибку. Ставя себе целью карьеру или приобретательство, человек испытывает в сумме гораздо больше огорчений, чем радостей, и рискует потерять всё. Не повысили в должности – огорчение; не успел купить марку для своей коллекции – огорчение; у кого-то лучшая, чем у тебя, мебель или лучшая машина – опять огорчение. Еще какое! А что может потерять человек, который радовался каждому своему доброму делу? Важно только, чтобы добро, которое человек делает, было бы его внутренней потребностью, шло от умного сердца, а не только от головы. Поэтому главной жизненной задачей должна быть обязательно задача шире, чем просто личностная. Она не должна быть замкнута только на собственных удачах и неудачах. Она должна диктоваться добротой к людям, любовью к семье, к своему городу, к своему народу, стране, ко всей Вселенной. (По Д. Лихачеву. 

Предмет: Математика, автор: 123451294