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

Получить доступ к объекту класса

30.09.2019, 15:05. Показов 2423. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Столкнулся с такой задачей: есть список студентов с 3 оценками и суммой баллов. Ввод данных из файла - построчное считывание.
Например:
Иванов Сергей 70 70 70 210
Сергеев Петр 100 100 0 200
Петров Василий 70 60 70 200
Васильев Андрей 70 60 70 200
Андреев Денис 100 30 100 230
Денисов Роман 50 50 50 150
Романов Иван 60 70 70 200
Ким Чен Ир 50 50 50 150
Ким Ир Сен 40 40 40 120

Нужно завести класс Students c атрибутами mark1, mark2, mark3 и sumMarks.
Завести все это в список myStudents. И вывести первые 5 сумм баллов, начиная с наибольшей.
Я отсортировал через key по сумме.
Вопрос: как получить доступ к sumMarks конкретного элемента?
То есть я хочу, например, вывести 2ой по счету myStudents.sumMarks. Есть ли способы обращения к этим строчкам?
Типа myStudens.sumMarks[2]. Надеюсь, внятно объяснил.
Предлагать решать по-другому не надо. Тупик появился в этом моменте.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.09.2019, 15:05
Ответы с готовыми решениями:

Как получить доступ к объекту ui из другого класса
Добрый день!Подскажите пожалуйста как обратиться к объекту из другого класса. void SrchDlg::on_pushButtonSearch_clicked() { ...

Как получить доступ к объекту другого класса
Здравствуйте друзья. Прошу помощи по вопросу В главном viewController cоздаю объект Label и записываю в него текст ...

Как получить доступ к объекту класса из другой формы?
В файле создан класс с одним полем (это для начала). Есть две формы. Создаю в одной из них объект класса, как получить к нему доступ из...

6
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
30.09.2019, 15:12
Фырфа, так зависит от того, как ты это реализовал в классе. По идее должно просто как атрибут работать, типа student.sum_marks
0
Модератор
Эксперт Python
 Аватар для Fudthhh
2695 / 1601 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
30.09.2019, 15:14
Фырфа, может код покажете? Т.к. нам не известно что и как у вас оформлено в классе.
0
0 / 0 / 0
Регистрация: 28.02.2019
Сообщений: 12
30.09.2019, 15:32  [ТС]
Там еще условие, что те, у кого хоть по одному предмету меньше 40, покидают конкурс. Это роли не играет, а объясняю, чтобы коду не удивлялись. Сумму я считаю вручную, но в класс закидываю.

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
class Students:
    mark1, mark2, mark3 = 0, 0, 0
    sumMarks = 0
 
 
def sortSum(lol):
    return lol.sumMarks
 
 
inF = open('input.txt', 'r', encoding='utf-8')
outF = open('output.txt', 'w', encoding='utf-8')
 
curArray = inF.readlines()
studMarks = []
for i in range(len(curArray)):
    curLine = curArray[i].split()
    studComp = Students()
    curMark1 = int(curLine[-1])
    curMark2 = int(curLine[-2])
    curMark3 = int(curLine[-3])
    if curMark1 >= 40\
            and curMark2 >= 40\
            and curMark3 >= 40:
        studComp.mark1 = curMark1
        studComp.mark2 = curMark2
        studComp.mark3 = curMark3
        studComp.sumMarks = curMark1 + curMark2 + curMark3
        studMarks.append(studComp)
studMarks.sort(key=sortSum)
Добавлено через 3 минуты
Цитата Сообщение от Welemir1 Посмотреть сообщение
Фырфа, так зависит от того, как ты это реализовал в классе. По идее должно просто как атрибут работать, типа student.sum_marks
если я напишу studMarks.sumMarks, то я как бы ссылаюсь на столбик с суммой баллов,а мне нужен конкретный ряд, т.е. даже ячейка.
Через array можно сделать или просто список в списке. Но мне надо именно через класс.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
30.09.2019, 15:56
Цитата Сообщение от Фырфа Посмотреть сообщение
чтобы коду не удивлялись.
а тут сложно не удивляться, то ли ты за минуту на коленке написал, то ли с ООП знаком понаслышке.
Цитата Сообщение от Фырфа Посмотреть сообщение
Сумму я считаю вручную
зачем? пусть каждый объект при создании ее считает

где имя? почему не передаешь оценки аргументами в конструктор?
если бы класс был нормально реализован, то обращение к атрибуту было бы myStudens[0].sumMarks
1
0 / 0 / 0
Регистрация: 28.02.2019
Сообщений: 12
30.09.2019, 16:05  [ТС]
Согласен. Пока только изучаю и знаю понаслышке. Задача-то простая и пока не подразумевается более глубокое изучение класса, пока только ввели понятие.
Тут исключительно мое любопытство.
Если сможете более подробно объяснить на примере, то было бы здорово.
Цитата Сообщение от Welemir1 Посмотреть сообщение
Сообщение от Фырфа
чтобы коду не удивлялись.
а тут сложно не удивляться, то ли ты за минуту на коленке написал, то ли с ООП знаком понаслышке.
Сообщение от Фырфа
Сумму я считаю вручную
зачем? пусть каждый объект при создании ее считает
где имя? почему не передаешь оценки аргументами в конструктор?
если бы класс был нормально реализован, то обращение к атрибуту было бы myStudens[0].sumMarks
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
30.09.2019, 17:02
Цитата Сообщение от Фырфа Посмотреть сообщение
Если сможете более подробно объяснить на примере, то было бы здорово.
я попробую, но без файлов, просто данные. Нам нужно чтобы каждый объект хранил данные о себе, потому атрибуты должны быть на уровне объектов, а не класса.
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
class Student:
    def __init__(self, name, *marks):
        # инициализатор каждого объекта, ждет что ты введешь имя и оценки, сразу сам считает сумму
        self.name = name
        # это наш список оценок, полученный при создании объекта
        self.marks = marks
        self.sum_of_marks = sum(marks)
    
    def __repr__(self):
        # просто для читаемого вывода
        return f"Student {self.name}, marks:{self.marks}, sum of marks:{self.sum_of_marks}"
    
# создаем 3 студентов, оценки не как у тебя в примере!
ivanov = Student('Ivanov', 70,70,70)
sergeev = Student('Sergeev', 100,100,80)
petrov = Student('Petrov',70,60,50)
# заносим в список
my_students = [ivanov, sergeev, petrov]
print(my_students) # выводим несортированный список
print('='*8). # просто печатаем разделитель
# выводим отсортированным по сумме оценок, от наибольшего к меньшему (так по задаче надо)
my_students.sort(key=lambda s:s.sum_of_marks, reverse =True)
print(my_students)
print('='*8)
print(my_students[1].sum_of_marks) # а вот вывод суммы конкретного элемента списка
задавай вопросы

Добавлено через 36 минут
эх, не обратил внимание, что у тебя сумма сразу идет в файле, ее тогда не стоит рассчитывать на лету, просто передавай параметрами в конструктор
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.09.2019, 17:02
Помогаю со студенческими работами здесь

Бинарное дерево подклассов основного класса-узла. Доступ к подклассам по указателю - объекту класса-родителя
Короче, необходимо сделать бинарное дерево, решающее арифметическое выражение, предварительно туда записанное. Есть основной класс...

Доступ к объекту класса
Всем привет, друзья! Начал изучать java. И решил по видеоуроку написать игру "Змейка", автор писал игру в notepad++ и грубо говоря,...

Доступ к объекту класса
Есть 3 класса MainWindow(Основной) и 2 второстепенных Controll и Mlist. // MainWindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H ...

Доступ к объекту класса
Всем привет! В h файле объявлено три класса: HeavyCar, Fuller, Emptier. Это код кнопки ПУСК: int i; //HeavyCar **masCar; masCar=new...

Получить несколько объектов в качестве аргументов и получить доступ к каждому объекту
Имеется несколько одинаковых объектов с разными данными. Пытаюсь передать их другому объекту при создании объекта ( конструктору) ...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru