(Python) Напишите программу для работы с рейтингами фильмов. Она может обрабатывать...

0 голосов
39 просмотров

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


Информатика (84 баллов) | 39 просмотров
Дан 1 ответ
0 голосов

def rate_f(movies):

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

       return True

def film_in_dictionary(movies):

   if movies in dictionary:

       return True

   else:

       return False

def average(movies):

   mean = 0

   for key2 in dictionary[movies].keys():

       mean += dictionary[movies][key2]

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

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():

           if rate_f(key):

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

           else:

               average(key)

       continue

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

   if command == 'add':

       if film_in_dictionary(film):

           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

           dictionary[film][name] = rate

       else:

           print('Error')

   elif command == 'find':

       if rate_f(film):

           continue

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

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

       average(film)

(1.1k баллов)
0

Почему то он на 4-ой строчке выдает ошибку "SyntaxError: недопустимый символ в идентификаторе"

0

Перед переносом строки поставь '\'