Лучшие помощники
- Megamozg 2180 б
- Matalya1 1800 б
- DevAdmin 1690 б
- arkasha_bortnikov 840 б
- Dwayne_Johnson 840 б
15 декабря 2022 21:04
656
(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
·
Хороший ответ
17 декабря 2022 21:04
Остались вопросы?
Еще вопросы по категории Информатика
К какой философской концепции, на ваш взгляд, ближе употребление понятия информации в генетике?...
Изображение на экране имеет размер 800 на 600 Определите пространственное разрешение монитора...
Значение арифметического выражения: 3125^64 * 625^19 + 125^75 - 25 записали в системе счисления с основанием 5. Сколько цифр «4» в этой записи?...
Переведите двоичное число 1111001 в десятичную систему счисления...
Последовательность чисел строится по следующему алгоритму: первые два числа последовательности принимаются равными 1; каждое следующие число последова...
Все предметы