Лучшие помощники
- Megamozg 2180 б
- Matalya1 1800 б
- DevAdmin 1690 б
- arkasha_bortnikov 840 б
- Dwayne_Johnson 840 б
17 декабря 2022 03:42
987
(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
·
Хороший ответ
19 декабря 2022 03:42
Остались вопросы?
Еще вопросы по категории Информатика
Как информатика связанна с Эвм? Поколения Эвм? В каких отраслях труд человека целесообразнее заменить трудом эвм? Существует ли связь между информа...
Напишите программу, которая позволит проверять пароль на сложность. Проверку пароля следует проводить по таким критериям: 1. Длина: от 5 символов....
сколько битов в 1 байте? сколько байтов в слове бит? сколько битов в слове байт? 1 килобайт---это 1000 байтов или 8 битов или 1024 бита или 1024 байта...
Что будет напечатано в результате выполнения следующего фрагмента кода? s = '20192020' print(s[2] + s[4])...
Укажите правильный вариант записи условия «х — двузначное числох div 10 <= 9 (х>=10) И (х<100) х div 100 = 0 х mod 100 = 99...
Все предметы