Лучшие помощники
- Megamozg 2180 б
- Matalya1 1800 б
- DevAdmin 1690 б
- arkasha_bortnikov 840 б
- Dwayne_Johnson 840 б
14 декабря 2022 22:28
477
(Python)Напишите программу для работы с рейтингами фильмов. Она может обрабатывать следующие команды:
add - добавить фильм с указанным названием. Если фильм с таким названием существует, выводите сообщение об ошибке. Рейтинги нового фильма - пустой словарь.
delete - удалить фильм с указанным названием. Если фильма с таким названием не существует, выводите сообщение об ошибке.
list - вывести список фильмов в виде таблицы (название, средний рейтинг). Если у фильма нет рейтинг�в, выводите вместо рейтинга сообщение, что фильм "не оценивался".
rate - добавить оценку к фильму по названию. Нужно ввести имя пользователя и количество баллов от 1 до 10 (оно может быть дробным).
Проверяйте, что оценка попадает в интервал от 0 до 10, предполагайте, что пользователь вводит только числа.
Если пользователь ввёл оценку 0, удалите оценку этого пользователя.
Если пользователь с указанным именем уже оценивал этот фильм, замените оценку на новую.
find - найти фильм по названию и показать его название и все оценки в виде таблицы (имя пользователя, оценка) + среднюю оценку. Если у фильма нет рейтингов, выводите сообщение, что фильм "не оценивался".
Напишите главный цикл приложения, который выводит меню и обрабатывает команды, используйте бесконечный цикл.
Обрабатывайте команду exit для выхода.
Выводите сообщение, если пользователь ввёл неправильную команду, и продолжайте работу.
Оформите пожалуйста вывод аккуратно (аналогично телефонной книге).
Выносите повторяющийся код и обработку каждой команды в функции.
1
ответ
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' средняя оценка: ')
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' не оценивался')
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 <= 10:
dictionary[film][name] = rate
else:
print('Error')
elif command == 'find':
if rate_f(film):
continue
for name, rate in dictionary[film].items():
print(f' поставил оценку: ')
average(film)
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' средняя оценка: ')
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' не оценивался')
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 <= 10:
dictionary[film][name] = rate
else:
print('Error')
elif command == 'find':
if rate_f(film):
continue
for name, rate in dictionary[film].items():
print(f' поставил оценку: ')
average(film)
0
·
Хороший ответ
16 декабря 2022 22:28
Остались вопросы?
Еще вопросы по категории Информатика
Отметьте верные утверждения. 1. Розу ветров можно построить с помощью лепестковой диаграммы. 2. У лепестковой диаграммы оси берут начало из нижнего л...
Административный домен верхнего уровня имеют следующие серверы: www.klyaksa.net www.edu.ру www.microsoft.com www.5ballov.ru...
СРОЧНО!!! 1.Применение векторной графики по сравнению с растровой: 1. не меняет способы кодирования изображения; 2. увеличивает объем памяти, необходи...
Урок 1 Определи адреса ячеек, которые используют формат «Денежный». А1, А2, А3, А4, А5 А2, В2, С2 В3, В4, В5 С3, С4, С5 СРОЧНО ПОЖАЛУЙСТА :)...
Толя, Петя, Саша и Ваня заняли четыре места в велокроссе. На вопрос, какие места они заняли, мальчики ответили: А) Толя не занял ни первое, ни четверт...
Все предметы