Добрый день. Подскажите пожалуйста, как правильно оформить код?
Из-за отступов возникают ошибки. Точнее от количества отступов.
У меня есть номера абонентов и их оценка работы специалистов по 5-бальной шкале.
Мне нужно вывести номер абонента и соответственно его оценку.
+ Рассчитать среднее арифметическое всех оценок.
Вот так выглядит код (только начинаю, поэтому, скорее всего, код можно было написать куда проще, но пока получилось сделать так).
# coding=utf-8
from builtins import len
from django.http import HttpResponse
from django.template import Context, loader, Template
import MySQLdb
def Mysql(request):
'''
Вывод номера абонента и его оценки из базы opinion
'''
global result
db = MySQLdb.connect('localhost','****','*****','db')
cursor = db.cursor() # указываю курсор
sql = "SELECT callerid, opinion FROM opinion"
cursor.execute(sql) # выполнение запроса, записанного в sql
result = cursor.fetchall() # Вывод ВСЕХ запрошенных данных сразу
db.close() # Завершаю соединение с базой данных
def Average(request):
'''
Вычисление среднего арифметического оценок
'''
global average_of_opinions
db = MySQLdb.connect('localhost','****','*****','db')
cursor = db.cursor()
sql = "SELECT opinion FROM opinion"
cursor.execute(sql)
opinions = cursor.fetchall() # Вывод всех мнений в виде кортежа кортежей
def summas(a): # функция суммирования элементов массива
s = 0
for x in a:
s += x
return s
like_list = [summas(x) for x in opinions] # Вывод кортежа в виде списка
summa = summas(like_list) # Сумма элементов списка со мнениями
len_of_list = len(like_list) # Длина списка
average_of_opinions = summa/len_of_list # Среднее арифметическое мнений (уже вычисленное)
db.close()
C = Context({'sql_data' : result, 'average': Average(average_of_opinions)})
my_template = 'Мнения = {{ sql_data }}, а среднее арифметическое {{ average }}'
T = Template(my_template)
return HttpResponse(T.render(C))
При запуске проекта в выше указанном виде, появляется ошибка
The view Opinions.views.Mysql didn't return an HttpResponse object. It returned None instead.
Как я поняла, дело в отступе. Вторую функцию "Average" надо прописать с ещё одним отступом.
Но тогда появляется другая ошибка
name 'average_of_opinions' is not defined
Как же оформить код так, чтобы я смогла вывести и мнения и их среднее арифметическое?
Помогите пожалуйста.