• Как рассчитать оценки для каждой группы и вывести средний балл по каждой группе в словаре?

    @Wispik
    Прямо в цикле можешь и средний бал считать:
    for k,v, in gl.items():                  
        s=f'Group: {k}: \n'
        avg_score = 0
        for stdn,grds in v.items():                  
             s+=f'  {stdn}\t{grds[0]},{grds[1]},{grds[2]} \n'
             avg_score += grds[0] + grds[1]+ grds[2]
        s += f'avg_score: {round(avg_score / (len(v) * 3), 2)} \n'
        print(s)

    но по хорошему я бы отдельную функцию сделал, которая принимает номер группы и считает средний бал
    Ответ написан
    8 комментариев
  • Как среди записей найти отдельный атрибут и сформировать по нему отдельную коллекцию?

    @Wispik
    Я сделал бы так (если правильно понял, что нужно):
    from itertools import groupby
    
    # students - массив со студентами
    students.sort(key=lambda x: x.numbgroup)
    
    res = [{'group': key, 'students': list(data)} for key, data in groupby(students, key=lambda x:x.numbgroup)]
    Ответ написан
    Комментировать
  • Как найти номера групп в порядке убывания успеваемости студентов?

    @Wispik
    1. создаешь список со студентами (например, stud_list)
    2. сортируешь его по нужному ключу stud_list.sort(key=lambda x: x.markgeometry)
    3. Выбираешь id из отсортированного списка
    Ответ написан
    Комментировать
  • Как найти номера групп в порядке убывания успеваемости студентов?

    @Atomnory
    1. В класс Studinfoдобавляешь метод, который будет возвращать numbgroup
    2. Создаёшь list, в котором будет хранится tuple(numbgroup, средний балл группы) для каждой группы.
    3. В основном блоке делаешь алгоритм вычисляющий средний балл всех студентов группы.
    4. Заполняешь tupleзначениями из метода п.1 и алгоритма п.3.
    5. Сортируешь все tuple в list по среднему баллу.
    6. Готово
    Ответ написан
    Комментировать
  • Как с помощью if,elif,else подсчитать количество оценок?

    MinTnt
    @MinTnt
    Ой кхем, в предыдущем ответе ошибся.
    Всё оказалось проще, из-за того что после опетора if записаны elif, то если код срабатывает хоть на 1 значение, дальше он не продолжает. А из-за того что в каждом варянте из student была 4рка, оно каждый раз останавливалось на проверке 4рок

    Просто поменять все elif на if
    Ответ написан
    2 комментария
  • Не показывает характеристики карточки товара в OpenCart?

    @liza2019
    атрибуты выбираются по 2 параметрам $product_id и $this->config->get('config_language_id')
    $product_attribute_group_query = $this->db->query("SELECT ag.attribute_group_id, agd.name FROM " . DB_PREFIX . "product_attribute pa LEFT JOIN " . DB_PREFIX . "attribute a ON (pa.attribute_id = a.attribute_id) LEFT JOIN " . DB_PREFIX . "attribute_group ag ON (a.attribute_group_id = ag.attribute_group_id) LEFT JOIN " . DB_PREFIX . "attribute_group_description agd ON (ag.attribute_group_id = agd.attribute_group_id) WHERE pa.product_id = '" . (int)$product_id . "' AND agd.language_id = '" . (int)$this->config->get('config_language_id') . "' GROUP BY ag.attribute_group_id ORDER BY ag.sort_order, agd.name");
    
    		foreach ($product_attribute_group_query->rows as $product_attribute_group) {
    			$product_attribute_data = array();
    
    			$product_attribute_query = $this->db->query("SELECT a.attribute_id, ad.name, pa.text FROM " . DB_PREFIX . "product_attribute pa LEFT JOIN " . DB_PREFIX . "attribute a ON (pa.attribute_id = a.attribute_id) LEFT JOIN " . DB_PREFIX . "attribute_description ad ON (a.attribute_id = ad.attribute_id) WHERE pa.product_id = '" . (int)$product_id . "' AND a.attribute_group_id = '" . (int)$product_attribute_group['attribute_group_id'] . "' AND ad.language_id = '" . (int)$this->config->get('config_language_id') . "' AND pa.language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY a.sort_order, ad.name");

    если у вас на 2 языках они показываются а на третьем нет, значит неправильно определяется $this->config->get('config_language_id')
    попробуйте в контроллере ниже строки
    $data['attribute_groups'] = $this->model_catalog_product->getProductAttributes($this->request->get['product_id']);
    прописать
    print_r($data['attribute_groups']); exit;
    и поперезагружайте страницу карточки на разных языках. скорее всего на грузинском у вас будет пустой массив.
    тогда ищите проблему почему айди языка не соответствует айди языка по атрибутам
    Ответ написан
    Комментировать
  • Как добавить в структуру массив char из 2 и более слов?

    @Flysink
    Тебе нужно использовать getline, вместо char - string
    getline(cin >> ws, kolcar->namecar);
    И соответственно освободить память:
    delete[] kolcar;
    Ответ написан
    Комментировать