0 / 0 / 0
Регистрация: 12.06.2022
Сообщений: 17

Попытка (2) Python задачки

12.06.2022, 20:00. Показов 6565. Ответов 5

Студворк — интернет-сервис помощи студентам
Всем привет! Решал задачку - Напишите программу с классом Student, в котором есть три атрибута: name, groupNumber и age. По умолчанию name = Ivan, age = 18, groupNumber = 10A. Необходимо создать пять методов: getName, getAge, getGroupNumber, setNameAge, setGroupNumber. Метод getName нужен для получения данных об имени конкретного студента, метод getAge нужен для получения данных о возрасте конкретного студента, vетод setGroupNumberнужен для получения данных о номере группы конкретного студента. Метод SetNameAge позволяет изменить данные атрибутов установленных по умолчанию, метод setGroupNumber позволяет изменить номер группы установленный по умолчанию. В программе необходимо создать пять экземпляров класса 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
class Student:
    def __init__(self, name='Ivan', age=18, group_number='10A'):
        self.name = name
        self.age = age
        self.groupNumber = group_number
 
    def get_name(self):
        return f'Имя студента - {self.get_name}'
 
    def get_age(self):
        return f'возраст студента - {self.get_age}'
 
    def get_group_number(self):
        return f'группа студента - {self.get_group_number}.'
 
    def set_name_age(self, name, age):
        self.name = name
        self.age = age
        return f'Имя студента - {self.name}, возраст студента - {self.age}'
 
    def set_group_number(self, group_number):
        self.groupNumber = group_number
        return f'группа студента - {self.groupNumber}.'
 
 
Petya = Student("Петя", 18, "03b")
Masha = Student("Маша", 21, "3k")
Ivan = Student()
Michail = Student()
Sara = Student("Сара", 16, "11AA")
print(f'{Petya.get_name()}, {Petya.get_age()}, {Petya.get_group_number()}')
print(f'{Masha.get_name()}, {Masha.get_age()}, {Masha.get_group_number()}')
print(f'Имя студента - {Ivan.name}, возраст студента - {Ivan.age}, группа студента - {Ivan.groupNumber}.')
print(f'{Michail.set_name_age("George", 30)}, {Michail.set_group_number("0303SDE")}')
print(f'{Sara.get_name()}, {Sara.get_age()}, {Sara.get_group_number()}')
Но когда запускаю код, вместо стандартного вывода как нужно - Имя студента - Петя, возраст студента - 18, группа студента - 03b, вылазит ошибка Имя студента - <bound method Student.get_name of <__main__.Student object at 0x0000021B7C667FD0>>, возраст студента - <bound method Student.get_age of <__main__.Student object at 0x0000021B7C667FD0>>, группа студента - <bound method Student.get_group_number of <__main__.Student object at 0x0000021B7C667FD0>>.
Кто подскажет как решить? буду благодарен очень
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.06.2022, 20:00
Ответы с готовыми решениями:

Как сделать эти задачки по информатике на Python
Вот все скриншоты задач, помогите решить, какие сможете, мне на ум мало что приходит. Я делаю их, а выходит на малое кол-во баллов. Вот и...

Задачки в Python
Задали несколько задачек в Python, но т.к. я только начал знакомство с программированием осилить их не получается. Помогите пожалуйста...

Задачки по Python - Кортежи
Извиняюсь,конечно за эту тему,но нигде я не смог найти нормальных задач для решения на Python. Сейчас помаленьку изучаю кортежи. Не можете...

5
2431 / 1474 / 633
Регистрация: 01.11.2021
Сообщений: 2,269
12.06.2022, 20:26
Лучший ответ Сообщение было отмечено Akkerman_ как решение

Решение

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
class Student:
    def __init__(self, name='Ivan', age=18, group_number='10A'):
        self.name = name
        self.age = age
        self.groupNumber = group_number
 
    def get_name(self):
        return f'Имя студента - {self.name}'
 
    def get_age(self):
        return f'возраст студента - {self.age}'
 
    def get_group_number(self):
        return f'группа студента - {self.groupNumber}.'
 
    def set_name_age(self, name, age):
        self.name = name
        self.age = age
        return f'Имя студента - {self.name}, возраст студента - {self.age}'
 
    def set_group_number(self, group_number):
        self.groupNumber = group_number
        return f'группа студента - {self.groupNumber}.'
 
 
Petya = Student("Петя", 18, "03b")
Masha = Student("Маша", 21, "3k")
Ivan = Student()
Michail = Student()
Sara = Student("Сара", 16, "11AA")
print(f'{Petya.get_name()}, {Petya.get_age()}, {Petya.get_group_number()}')
print(f'{Masha.get_name()}, {Masha.get_age()}, {Masha.get_group_number()}')
print(f'Имя студента - {Ivan.name}, возраст студента - {Ivan.age}, группа студента - {Ivan.groupNumber}.')
print(f'{Michail.set_name_age("George", 30)}, {Michail.set_group_number("0303SDE")}')
print(f'{Sara.get_name()}, {Sara.get_age()}, {Sara.get_group_number()}')
Добавлено через 1 минуту
И лучше возвращай просто имя, а уже потом форматируй как тебе необходимо.
Т.е.
Python
1
2
def get_name(self):
    return self.name
1
0 / 0 / 0
Регистрация: 12.06.2022
Сообщений: 17
12.06.2022, 20:32  [ТС]
спасибо за решение!
но не совсем понял по поводу возврата имени,а как после него формат выводить тогда? извиняюсь за глупый вопрос,но я чайник
0
2431 / 1474 / 633
Регистрация: 01.11.2021
Сообщений: 2,269
12.06.2022, 20:39
Лучший ответ Сообщение было отмечено Akkerman_ как решение

Решение

Так же и с возрастом и с остальным, вдруг тебе будет задание посчитать средний возраст по группе. Если пользоваться твоим методом, то придется как-то выдергивать его из строки, хотя проще было, если бы метод возвращал просто возраст числом
Python
1
2
def get_age(self):
    return self.age
А если надо красиво офрмить, то форматировать уже надо там, где выводишь.

Добавлено через 5 минут
Как у тебя:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Student:
    def __init__(self, name='Ivan', age=18, group_number='10A'):
        self.name = name
        self.age = age
        self.groupNumber = group_number
 
    def get_name(self):
        return f'Имя студента - {self.name}'
 
    def get_age(self):
        return f'возраст студента - {self.age}'
 
    def get_group_number(self):
        return f'группа студента - {self.groupNumber}.'
 
 
Petya = Student("Петя", 18, "03b")
print(f'{Petya.get_name()}, {Petya.get_age()}, {Petya.get_group_number()}')
Так было бы лучше:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Student:
    def __init__(self, name='Ivan', age=18, group_number='10A'):
        self.name = name
        self.age = age
        self.groupNumber = group_number
 
    def get_name(self):
        return self.name
 
    def get_age(self):
        return self.age
 
    def get_group_number(self):
        return self.groupNumber
 
 
Petya = Student("Петя", 18, "03b")
print(
    f'Имя студента - {Petya.get_name()}, возраст студента - {Petya.get_age()}, группа студента - {Petya.get_group_number()}.')
0
0 / 0 / 0
Регистрация: 12.06.2022
Сообщений: 17
12.06.2022, 20:40  [ТС]
Ага, понял тогда в чем суть, спасибо! То есть всю эту красоту ( имя,возраст студента нужно вписывать уже в каждую команду вывода? Типо так?
Python
1
print(f'Имя студента - {NAME.get_name()}, возраст студента - {AGE.get_age}')

Да,все, спасибо! я тебя понял еще раньше чем ты написал Спасибо!!
0
2431 / 1474 / 633
Регистрация: 01.11.2021
Сообщений: 2,269
12.06.2022, 20:50
Akkerman_,
да, форматировать информацию лучше при выводе.
Можешь добавить еще метод в класс get_info() и там уже форматировать как тебе надо всю информацию и выводить полные данные о студенте. Но раз метод get_age(), то и возвращать он должен только возраст, например 18, а не строку форматированную.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Student:
    def __init__(self, name='Ivan', age=18, group_number='10A'):
        self.name = name
        self.age = age
        self.groupNumber = group_number
 
    def get_name(self):
        return self.name
 
    def get_age(self):
        return self.age
 
    def get_group_number(self):
        return self.groupNumber
 
    def get_info(self):
        return f'Имя студента - {self.get_name()}, возраст студента - {self.get_age()}, группа студента - {self.get_group_number()}.'
 
 
Petya = Student("Петя", 18, "03b")
print(Petya.get_info())
Как уже выше написал, вот, например, у тебя есть список студентов.
Python
1
a = [Student("Петя", 20, "03b"), Student("Коля", 18, "03b"), Student("Вася", 24, "03b")]
И тебя попросят вычислить средний возраст всех студентов в группе.
Если использовать твои методы, то это будет не просто.
А если делать правильно, то средний возраст посчитать всего-то
Python
1
2
a = [Student("Петя", 20, "03b"), Student("Коля", 18, "03b"), Student("Вася", 24, "03b")]
avg = sum([student.get_age() for student in a]) / len(a)
А теперь попробуй для своего кода посчитать средний возраст, с твоим выводом, чтобы понять разницу.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.06.2022, 20:50
Помогаю со студенческими работами здесь

Решение задачки(найти наименьшее K) на Python
Здравствуйте, проблема с задачей, никак не пойму как найти наименьшее число K, по какой формуле это можно сделать как вообще это можно...

System.AccessViolationException: Попытка чтения или записи в защищенную память - попытка 2
В предыдущей теме некто вообразил, что код зацикливается, поэтому приходится выкладывать более широкую модель. Надеюсь, до целого проекта...

System.AccessViolationException: Попытка чтения или записи в защищенную память - попытка 3
Уже простите за некомпилируемый код, просто я переустановил Windows, и Visual Studio удалилась, только сегодня днем установил. Код там...

База данных о продажах некоторого интернет-магазина
Нужно решить одну задачку решение на питоне есть, но нужно именно на плюсах, всю голову сломал уже, но никак не могу написать код на C++....

Первая попытка
Ребят, начинаю писать первую игру, ее смысл в том, что ты играешь человечком, бегающем внизу экрана, и сверху на тебя падают камни(бомбы) и...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru