Конструкторы и Деструкторы
.docxНаписать программу, которая содержит класс. Класс назван вашей фамилией. Класс содержит компоненты для хранения вашего имени, года рождения и массив оценок по программированию. Инициализацию данных произвести в конструкторе.
class Khasenov:
def __init__(self):
self.name = "Marat"
self.birth_year = 2000
self.grades = [5, 4, 5, 5, 3] # Пример оценок по программированию
def display_info(self):
print(f"Имя: {self.name}")
print(f"Год рождения: {self.birth_year}")
print(f"Оценки по программированию: {self.grades}")
# Пример использования:
student = Khasenov()
student.display_info()
Имя: Marat
Год рождения: 2000
Оценки по программированию: [5, 4, 5, 5, 3]
Написать программу, которая содержит класс «число» Класс, включает методы для нахождения суммы и количества делителей числа. Инициализацию данных произвести в конструкторе.
class Number:
def __init__(self, number):
self.number = number # Инициализация числа
def get_divisors(self):
"""Метод для нахождения делителей числа"""
divisors = []
for i in range(1, self.number + 1):
if self.number % i == 0:
divisors.append(i)
return divisors
def sum_of_divisors(self):
"""Метод для нахождения суммы делителей"""
return sum(self.get_divisors())
def count_of_divisors(self):
"""Метод для нахождения количества делителей"""
return len(self.get_divisors())
# Пример использования:
num = Number(28)
print(f"Число: {num.number}")
print(f"Делители числа: {num.get_divisors()}")
print(f"Сумма делителей: {num.sum_of_divisors()}")
print(f"Количество делителей: {num.count_of_divisors()}")
Число: 28
Делители числа: [1, 2, 4, 7, 14, 28]
Сумма делителей: 56
Количество делителей: 6
3. Написать программу, которая содержит класс «массив». Класс, включает методы для нахождения суммы и количества элементов массива, которые являются простыми числами. Инициализацию данных произвести в конструкторе.
class Array:
def __init__(self, array):
self.array = array # Инициализация массива
def is_prime(self, num):
"""Метод для проверки, является ли число простым"""
if num <= 1:
return False
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
return False
return True
def sum_of_primes(self):
"""Метод для нахождения суммы простых чисел в массиве"""
prime_numbers = [num for num in self.array if self.is_prime(num)]
return sum(prime_numbers)
def count_of_primes(self):
"""Метод для нахождения количества простых чисел в массиве"""
prime_numbers = [num for num in self.array if self.is_prime(num)]
return len(prime_numbers)
# Пример использования:
array = Array([10, 3, 5, 7, 12, 19, 20, 23, 1])
print(f"Массив: {array.array}")
print(f"Сумма простых чисел: {array.sum_of_primes()}")
print(f"Количество простых чисел: {array.count_of_primes()}")
Массив: [10, 3, 5, 7, 12, 19, 20, 23, 1]
Сумма простых чисел: 57
Количество простых чисел: 4
4.Создать класс Млекопитающие. Использовать атрибуты и методы по смыслу.
class Mammal:
def __init__(self, name, habitat, diet, sound):
self.name = name # Имя животного
self.habitat = habitat # Среда обитания
self.diet = diet # Диета
self.sound = sound # Звук, который издает млекопитающее
def make_sound(self):
"""Метод для воспроизведения звука"""
print(f"{self.name} издает звук: {self.sound}")
def display_info(self):
"""Метод для вывода информации о млекопитающем"""
print(f"Млекопитающее: {self.name}")
print(f"Среда обитания: {self.habitat}")
print(f"Диета: {self.diet}")
print(f"Звук: {self.sound}")
def change_diet(self, new_diet):
"""Метод для изменения диеты"""
self.diet = new_diet
print(f"Диета {self.name} была изменена на: {self.diet}")
# Пример использования:
lion = Mammal(name="Лев", habitat="Савана", diet="Мясо", sound="Рычит")
elephant = Mammal(name="Слон", habitat="Леса и саваны", diet="Травоядное", sound="Трубит")
# Вывод информации о животных
lion.display_info()
elephant.display_info()
# Изменение диеты
lion.change_diet("Растительноядное")
# Воспроизведение звуков
lion.make_sound()
elephant.make_sound()
5. Создать класс Бобовые. Использовать атрибуты и методы по смыслу.
class Legumes:
def __init__(self, name, color, family, nutritional_value):
self.name = name # Название бобового растения
self.color = color # Цвет плодов или растения
self.family = family # Семейство (например, Fabaceae)
self.nutritional_value = nutritional_value # Пищевая ценность (в г на 100 г)
def get_nutritional_value(self):
"""Метод для вывода пищевой ценности бобового растения"""
return f"Пищевая ценность 100 г {self.name}: {self.nutritional_value}"
def get_info(self):
"""Метод для вывода информации о бобовом растении"""
print(f"Название: {self.name}")
print(f"Цвет: {self.color}")
print(f"Семейство: {self.family}")
print(self.get_nutritional_value())
def change_name(self, new_name):
"""Метод для изменения названия бобового растения"""
self.name = new_name
print(f"Название растения было изменено на: {self.name}")
# Пример использования:
pea = Legumes(name="Горох", color="Зеленый", family="Fabaceae", nutritional_value={"белки": 5, "углеводы": 27, "жиры": 0.4})
bean = Legumes(name="Фасоль", color="Красный", family="Fabaceae", nutritional_value={"белки": 9, "углеводы": 27, "жиры": 0.8})
# Вывод информации о растениях
pea.get_info()
bean.get_info()
# Изменение названия растения
pea.change_name("Горошек")
pea.get_info()
5. Создать класс Жилой_Дом. Использовать атрибуты и методы по смыслу.
class ResidentialBuilding:
def __init__(self, address, floors, apartments_per_floor, total_area):
self.address = address # Адрес жилого дома
self.floors = floors # Количество этажей
self.apartments_per_floor = apartments_per_floor # Количество квартир на каждом этаже
self.total_area = total_area # Общая площадь дома (в квадратных метрах)
def total_apartments(self):
"""Метод для вычисления общего количества квартир в доме"""
return self.floors * self.apartments_per_floor
def total_area_of_building(self):
"""Метод для вычисления общей площади дома"""
return self.total_area
def add_apartment(self):
"""Метод для добавления одной квартиры на одном из этажей"""
self.apartments_per_floor += 1
print(f"Добавлена 1 квартира. Теперь на каждом этаже {self.apartments_per_floor} квартир.")
def display_info(self):
"""Метод для вывода информации о жилом доме"""
print(f"Адрес жилого дома: {self.address}")
print(f"Количество этажей: {self.floors}")
print(f"Количество квартир на этаже: {self.apartments_per_floor}")
print(f"Общая площадь: {self.total_area} кв.м")
print(f"Общее количество квартир: {self.total_apartments()}")
# Пример использования:
building = ResidentialBuilding(address="ул. Ленина, 10", floors=5, apartments_per_floor=4, total_area=1200)
# Вывод информации о доме
building.display_info()
# Добавление квартиры
building.add_apartment()
# Вывод информации о доме после добавления квартиры
building.display_info()
