-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy path1.py
More file actions
40 lines (33 loc) · 2.12 KB
/
1.py
File metadata and controls
40 lines (33 loc) · 2.12 KB
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
#!/usr/bin/python
# -*- coding: utf-8 -*-
# Создайте класс с именем _Person_, содержащий три поля для хранения имени, фамилии и отчества.
# В классе создайте функцию _show_data()_, выводящую на экран имя, фамилию и отчество.
# Далее от класса _Person_ с помощью наследования создайте два класса: _Student_, _Professor_.
# К классу _Student_ добавьте дополнительное поле, содержащее средний бал студента.
# К классу _Professor_ три поля:
# 1. число публикаций профессора,
# 2. должность (тип - перечисление) - преподаватель, старший преподаватель, доцент, профессор,
# 3. возраст.
# Для каждого производного класса переопределите метод _show_data()_.
# В основной программе определите массив.
# Далее в цикле нужно организовать ввод студентов и профессоров вперемешку.
# Когда ввод будет закончен, нужно вывести информацию с помощью метода _show_data()_ обо всех людях.
class Person:
name = ""
fname = ""
tname = ""
def show_data(self):
print("ФИО {} {} {}".format(self.name, self.fname, self.tname))
class Student(Person):
grade = 0
def show_data(self):
print("ФИО {} {} {}, средний бал {}".format(self.name, self.fname, self.tname, self.grade))
class Professor(Person):
pub_count = 0
position = ""
age = 0
def show_data(self):
print("ФИО {} {} {} число публикаций {}, должность {}, возраст {}".format(self.name, self.fname, self.tname, self.pub_count, self.position, self.age))
list = [Student(), Student(), Professor(), Professor(), Student()]
for p in list:
p.show_data()