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

Создать в Python класс User с атрибутами

07.10.2022, 18:44. Показов 4586. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Создать в Python класс User с атрибутами:
• name (имя)
• surname (фамилия)
• year_of_birth (год рождения)
Класс должен содержать конструктор, метод getAge() для вычисления возраста человека (от текущего года отнять год рождения), метод getInfo(), с помощью которого можно вывести одновременно имя, фамилию, год рождения и возраст человека. Текущий год следует получать автоматически.
Создать класс Student (Студент), который будет наследоваться от класса User и иметь дополнительные атрибуты: yearOfAdmission (год поступления в вуз) и averageScore (средний балл студента). Также данный класс должен иметь метод getCourse(), который будет возвращать текущий курс студента (от 1 до 5). Курс вычисляется также: нужно от текущего года отнять год поступления в вуз. Текущий год получите самостоятельно.
* Создайте класс Student_group, содержащий список студентов (объектов от класса Student). Также данный класс должен иметь метод best student(), определяющий студента с самым высоким средним баллом. Переопределите также в классе операции += для добавления студента в группу, -= для удаления студента из группы.
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
from abc import ABC, abstractmethod
 
 
class User(ABC):
 
    def __init__(self, name, surname, age):
        self.name = name
        self.surname = surname
        self.age = age
  
        
    @abstractmethod
    def get_info(self):
        print('Информация о персоне...')
 
    def get_age(self):
        return self.age
class Student(User):
 
    def __init__(self, name, surname, age, yearOfAdmission, averageScore):
        super().__init__(name, surname, age)
        self.yearOfAdmission = yearOfAdmission  # средний балл
        self.averageScore = averageScore  # год поступления 
  
        
    def get_info(self):
        return ('Имя: {}\nФамилия: {}\nДата рождения: {}\nПоступил: {}\nСредний балл: {}'.
                format(self.name, self.surname,  self.age, self.yearOfAdmission, self.averageScore))
   
 
persons = []
persons.append(Student("Виктор", "Ивановская", 1983, 2004, 4.88)) 
persons.append(Student("Виктор", "Ивановская", 1970, 2000, 4.38)) 
persons.append(Student("Виктор", "Ивановская", 1972, 2006, 4.55)) 
persons.append(Student("Виктор", "Ивановская", 1971, 2004, 4.98)) 
persons.append(Student("Виктор", "Ивановская", 1948, 2001, 4.78)) 
for person in persons:
    print(person.get_info())
    print()
Написал только это не понимаю как все сделать по заданию застрял уже как вычислить возраст по вычитанию настоящего года с годом рождения
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.10.2022, 18:44
Ответы с готовыми решениями:

Как создать класс с динамическими атрибутами
добрый день! Помогите сделать по типу: print(class.atr) вывод: atr print(class.one.two) вывод: one.two Как в...

Как создать класс матрица с атрибутами private!
Описать класс матрица в которой содержатся следующие атрибуты: private-3 матрицы одинаковой размерности три на три и методы класса...

Использование типов DataContract с другими атрибутами. Прокси класс не генерирует DataContract с атрибутами
Такая проблема. Три дня провозился с сервисом, клиент которого по непонятной мне тогда причине кидал Exception, хотя все было написано...

8
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7391 / 4818 / 1246
Регистрация: 30.03.2015
Сообщений: 13,687
Записей в блоге: 29
07.10.2022, 18:55
Цитата Сообщение от jjs1 Посмотреть сообщение
как вычислить возраст по вычитанию настоящего года с годом рождения
может, ну чисто теоретичекси - использовать вычитание?
0
0 / 0 / 0
Регистрация: 07.10.2022
Сообщений: 8
07.10.2022, 19:09  [ТС]
я поставил вычитание, но он с агрился на то что у меня тип переменной string и тут я встрял в ступор
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7391 / 4818 / 1246
Регистрация: 30.03.2015
Сообщений: 13,687
Записей в блоге: 29
07.10.2022, 19:13
jjs1, а ты предполагаешь что год рождения олжен быть строкой?

простой пример
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
>>> from datetime import datetime
>>> class User:
...     def __init__(self, birth_year):
...         self.year = birth_year
...     def get_age(self):
...         return datetime.now().year-self.year
... 
>>> user=User(1990)
>>> user.get_age()
32
>>> user=User(2000)
>>> user.get_age()
22
0
0 / 0 / 0
Регистрация: 07.10.2022
Сообщений: 8
07.10.2022, 19:49  [ТС]
можешь объяснить свой код?
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7391 / 4818 / 1246
Регистрация: 30.03.2015
Сообщений: 13,687
Записей в блоге: 29
07.10.2022, 19:52
jjs1, конечно
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
>>> from datetime import datetime  # для того чтобы получить текущий год
>>> class User:
...     def __init__(self, birth_year): # запрашиваем при создании объекта год, предполагаем что это инт
...         self.year = birth_year
...     def get_age(self):
...         return datetime.now().year-self.year # из текущего года вычитаем год рождения
... 
>>> user=User(1990)
>>> user.get_age() # проверка 1 (2022-1990=32)
32
>>> user=User(2000)
>>> user.get_age() # проверка 2 (2022-2000=22)
22
на >>> и ... не обращай внимания, это я в консоли просто накидал тебе на коленке
0
0 / 0 / 0
Регистрация: 07.10.2022
Сообщений: 8
07.10.2022, 20:04  [ТС]
а как связать потом мне выход дня рождения со всеми данными
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7391 / 4818 / 1246
Регистрация: 30.03.2015
Сообщений: 13,687
Записей в блоге: 29
07.10.2022, 20:19
jjs1, подставить в строку вывода, лучше используй f-строки
0
0 / 0 / 0
Регистрация: 07.10.2022
Сообщений: 8
07.10.2022, 20:22  [ТС]
я использовал, но что-то не получилось. Можно попросить напистаь код с нуля пожалйста, если вам будет не трудно. Буду очень благодарен, если сделаете, а то я изучал C++, а нам дали задание по питону, а в нем я полный ноль.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.10.2022, 20:22
Помогаю со студенческими работами здесь

На основе класса User создать класс Employee, описывающий сотрудника фирмы
Наследование и полиморфизм 1)На основе класса User создать класс Employee, описывающий сотрудника фирмы. Добавить поля «стаж работы» и...

Создать класс user, который имеет логин, имя, телефон, email и пароль
Привет всем! Помогите создать класс user, который имеет логин, имя, телефон, email и пароль Вот написал public class User { ...

Создать user exeption класс, который наследуется от exeption
Помогите сделать следующее:сделать user exeption класс который наследуется от exeption, + сделать исключение выход за границы массива) то...

Создать класс с именем Address. Python
1. В теле класса требуется создать поля: index, country, city, street, house, apartment. Создать конструктор по умолчанию. Создать...

Создать классс атрибутами
Помогите с написанием класса по следующим условиям: Создать класс Name, который принимает имя и фамилию в качестве аргументов при...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru