Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/21: Рейтинг темы: голосов - 21, средняя оценка - 4.95
0 / 0 / 0
Регистрация: 02.12.2017
Сообщений: 8

Сортировка списка студентов по сумме баллов, полученных на вступительных экзаменах

29.04.2018, 23:56. Показов 4173. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, ниже привожу задание и свою программу. Первую часть сделать получилось, а вот с сортировкой проблемы,подскажите пожалуйста, как её можно реализовать.
Ввести и сохранить в файле данные следующей структуры: ф.,и.,о. абитуриента,средний балл аттестата, оценки, полученные на вступительных экзаменах, место жительства. Организовать просмотр исходных данных и вывести список абитуриентов,не прошедших по конкурсу, отсортированный по сумме баллов, полученных на вступительных экзаменах, с указанием среднего балла и результатов экзаменов.


Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# -*- coding: utf-8 -*-
#!/usr/bin/env python
from openpyxl import load_workbook
wb = load_workbook(filename = 'sample.xlsx')
ws = wb.active
 
class Abiturient1:
 def __init__(self, fio, mesto, otcenka_math, otcenka_rus, srb):
  self.fio = fio
  self.srb = srb
  self.otcenka_math = otcenka_math
  self.otcenka_rus = otcenka_rus
  self.mesto = mesto
 def __str__(self):
  return ' FIO: %s; Mesto: %s; Otcenka_math: %s; Otcenka_rus: %s; Sredniy ball att: %s' % (self.fio, self.mesto, self.otcenka_math,  self.otcenka_rus, self.srb)
  
class Abiturient2:
 def __init__(self, fio, mesto, otcenka_math, otcenka_rus, srb):
  self.fio = fio
  self.srb = srb
  self.otcenka_math = otcenka_math
  self.otcenka_rus = otcenka_rus
  self.mesto = mesto
 def __str__(self):
  return ' FIO: %s; Mesto: %s; Otcenka_math: %s; Otcenka_rus: %s Sredniy ball att: %s' % (self.fio, self.mesto, self.otcenka_math, self.otcenka_rus, self.srb)
   
numbers = input("Kolichestvo novih abiturientov:" )
shop=[]
 
for i in range(numbers):
  p = Abiturient1(raw_input("FIO: "), raw_input("Mesto: "), input("Otcenka_math: "), input("Otcenka_rus: "), input("Sredniy ball att: "))
  ws.append([p.fio, p.mesto, p.otcenka_math,p.otcenka_rus, p.srb])
  shop.append(p)
  
for i in range(numbers):
  print(shop[i])
wb.save("sample.xlsx")
 
shop2 = []
k=0
for r in range(1, 100):
 if ws.cell(row=r, column=1).value!=None:
  p2 = Abiturient2(ws.cell(row=r, column=1).value, ws.cell(row=r, column=2).value, ws.cell(row=r, column=3).value, ws.cell(row=r, column=4).value, ws.cell(row=r, column=5).value)
  shop2.append(p2)
  k += 1
print  
print("************** Spisok abiturientov **************")
for i in range(k):
  print(shop2[i])
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.04.2018, 23:56
Ответы с готовыми решениями:

Структура: Вывести список абитуриентов, отсортированный по сумме баллов, полученных на вступительных экзаменах
Ввести и сохранить в файле данные следующей структуры: ФИО абитуриент, средний балл аттестата, оценки, полученные на вступительных...

Вывести список абитуриентов, отсортированный по сумме баллов, полученных на экзаменах
*Ввести и сохранить в файле данные следующей структуры:*ф.,и.,о. абитуриента, * средний балл аттестата, * оценки, * полученные на...

Найти и вывести фамилии тех студентов, которые на экзаменах получили не ниже 7 баллов
Даны оценки группы студентов на экзаменах по 4 предметам: алгебре, геометрии, философии, информатике. Найти и вывести фамилии тех...

2
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
30.04.2018, 00:26
Вам надо разобраться что такое класс и что такое объект. подправил немного

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
from openpyxl import load_workbook
wb = load_workbook(filename = 'sample.xlsx')
ws = wb.active
 
class Abiturient:
    def __init__(self, fio, mesto, otcenka_math, otcenka_rus, srb):
        self.fio = fio
        self.srb = srb
        self.otcenka_math = otcenka_math
        self.otcenka_rus = otcenka_rus
        self.mesto = mesto
    def __str__(self):
        return ' FIO: %s; Mesto: %s; Otcenka_math: %s; Otcenka_rus: %s; Sredniy ball att: %s' % (self.fio, self.mesto, self.otcenka_math, self.otcenka_rus, self.srb)
 
 
shop=[]
 
for i in range(numbers):
    p = Abiturient(input("FIO: "), input("Mesto: "), input("Otcenka_math: "), input("Otcenka_rus: "), input("Sredniy ball att: "))
    ws.append([p.fio, p.mesto, p.otcenka_math,p.otcenka_rus, p.srb])
    shop.append(p)
 
for i in shop:
  print(i)
wb.save("sample.xlsx")
 
 
shop2 = []
 
for r in range(1, 100):
 if ws.cell(row=r, column=1).value!=None:
  p2 = Abiturient2(ws.cell(row=r, column=1).value, ws.cell(row=r, column=2).value, ws.cell(row=r, column=3).value, ws.cell(row=r, column=4).value, ws.cell(row=r, column=5).value)
  shop2.append(p2)
 
print("************** Spisok abiturientov **************")
for i in shop2:
    print(i)
 
 
abit_out = [x for x in shop2 if x.mesto > 3]
 
print("************** Не прошедшие по  конкурсу абитуриенты **************")
for abit in sorted(shop, lambda x: x.otcenka_math + x.otcenka_rus):
    print("Студент {}, средний балл {}, место на экзамене".format(abit.fio, abit.srb, abit.mesto))
0
0 / 0 / 0
Регистрация: 02.12.2017
Сообщений: 8
01.05.2018, 23:51  [ТС]
Спасибо большое)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.05.2018, 23:51
Помогаю со студенческими работами здесь

Известны оценки каждого из 15 студентов, полученных в сессию на экзаменах по трем предметам. Определить количество двоек по каждому предмету.
Известны оценки каждого из 15 студентов, полученных в сессию на экзаменах по трем предметам. Определить количество двоек по каждому...

Отсортировать массив по сумме баллов студентов и вывести на экран вместе с их фамилиями
Даны массивы F-фамилий студентов и S-результаты сессии (5 оценок) , причем s- результат сессии F студента. Отсортировать массив S по...

Определить оценку абитуриента по математике на вступительных экзаменах
Определить оценку абитуриента по математике на вступительных экзаменах, если оценка определяется в зависимости от количества правильно...

Определить оценку абитуриента по математике на вступительных экзаменах
Определить оценку абитуриента по математике на вступительных экзаменах, если оценка определяется в зависимости от количества правильно...

Добавить в начало файла оценки, полученные на вступительных экзаменах
записать в файл оценки(в баллах), полученные некоторым студентом в течение всех сессий. Добавить в начало файла оценки,полученные на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru