Форум сайта python.su
0
Здравствуйте.
Содержание. “Сначала добавьте к исходной таблице два дополнительных столбца: ROI и бюджет одной минуты. Для этого у вас уже есть функции add_roi() и add_price_per_minute().
Затем для каждого жанра посчитайте средние величины: рейтинг, длину, ROI и бюджет минуты. Для этого воспользуйтесь уже написанной функцией column_mean(). Сведите информацию вот в такую таблицу:
Жанр | Рейтинг | Длина | ROI | Бюджет за минуту
——————————————————-
история | … | … | … | …
…
Сохраните её в переменной genres_means (англ. genres means, «средние значения для каждого жанра») и выведите на экран. Числа печатайте с двумя знаками после запятой и выравнивайте по правому краю, а названия — по левому”.
Выводится ошибка. Проконсультируйте, пожалуйста. ) Заранее спасибо за помощь! Код в приложении.
oscar_data = [
['Форма воды', 2017, 6.914, 123, , 19.4, 195.243464],
['Лунный свет', 2016, 6.151, 110, , 1.5, 65.046687],
['В центре внимания', 2015, 7.489, 129, , 20.0, 88.346473],
['Бёрдмэн', 2014, 7.604, 119, , 18.0, 103.215094],
['12 лет рабства', 2013, 7.71, 133, , 20.0, 178.371993],
['Операция “Арго”', 2012, 7.517, 120, , 44.5, 232.324128],
['Артист', 2011, 7.942, 96, , 15.0, 133.432856],
['Король говорит!', 2010, 7.977, 118, , 15.0, 414.211549],
['Повелитель бури', 2008, 7.298, 126, , 15.0, 49.230772],
['Миллионер из трущоб', 2008, 7.724, 120, , 15.0, 377.910544],
['Старикам тут не место', 2007, 7.726, 122, , 25.0, 171.627166],
['Отступники', 2006, 8.456, 151, , 90.0, 289.847354],
['Столкновение', 2004, 7.896, 108, , 6.5, 98.410061],
['Малышка на миллион', 2004, 8.075, 132, , 30.0, 216.763646],
['Властелин колец: Возвращение Короля', 2003, 8.617, 201, , 94.0, 1119.110941],
['Чикаго', 2002, 7.669, 113, , 45.0, 306.776732],
['Игры разума', 2001, 8.557, 135, , 58.0, 313.542341],
['Гладиатор', 2000, 8.585, 155, , 103.0, 457.640427],
['Красота по-американски', 1999, 7.965, 122, , 15.0, 356.296601],
['Влюбленный Шекспир', 1998, 7.452, 123, , 25.0, 289.317794],
['Титаник', 1997, 8.369, 194, , 200.0, 2185.372302],
['Английский пациент', 1996, 7.849, 155, , 27.0, 231.976425],
['Храброе сердце', 1995, 8.283, 178, , 72.0, 210.409945],
['Форрест Гамп', 1994, 8.915, 142, , 55.0, 677.386686],
['Список Шиндлера', 1993, 8.819, 195, , 22.0, 321.265768],
['Непрощенный', 1992, 7.858, 131, , 14.4, 159.157447],
['Молчание ягнят', 1990, 8.335, 114, , 19.0, 272.742922],
['Танцующий с волками', 1990, 8.112, 181, , 22.0, 424.208848],
['Шофёр мисс Дэйзи', 1989, 7.645, 99, , 7.5, 145.793296],
['Человек дождя', 1988, 8.25, 133, , 25.0, 354.825435],
]
def filter_by_genre(data, genre):
result =
for row in data:
genres = row
if genre in genres:
result.append(row)
return result
def column_sum(data, column):
result = 0
for row in data:
result += row
return result
def column_mean(data, column):
total = column_sum(data, column)
mean = total / len(data)
return mean
def add_roi(data):
for i in range(len(data)):
budget = data
gross = data
roi = (gross - budget) / budget
data.append(roi)
def add_price_per_minute(data):
for i in range(len(data)):
length = data
budget = data
price_per_minute = budget / length
data.append(price_per_minute)
selected_genres =
genres_means =
for genre in selected_genres:
filt_data = filter_by_genre (oscar_data, genre)
mean_score = column_mean(filt_data, 2)
mean_length = column_mean(filt_data, 3)
mean_roi = column_mean(filt_data, 7)
mean_ppm = column_mean(filt_data, 8)
genres_means.append()
print('Жанр | Рейтинг | Длина | ROI | Бюджет за минуту')
print('——————————————————-')
for row in genres_means:
print('{: <9} | {: >7.2f} | {: >5.2f} | {: >5.2f} | {: >16.2f}'.format(
row, row, row, row, row))
Прикреплённый файлы:
05 06 2019.py (5,2 KБ)
Офлайн
GEvgeniyВ каждом списке filt_data по 7 значений (индексы от 0 до 6), ты пытаешься обратиться к 8-му (индекс 7, показал на скрине), строчкой ниже - к 9-му (8). Как я понимаю, для этого надо сначала добавить указанные в условии столбцы - они и будут идти под индексами 7 и 8
mean_roi = column_mean(filt_data, 7)
Прикреплённый файлы:
pycharm64_2019-06-05_16-33-05.jpg (130,9 KБ)
Офлайн
0
Спасибо! 
Офлайн
0
Egorro13не совсем понятно, что нужно исправить?
Офлайн