-
Notifications
You must be signed in to change notification settings - Fork 0
/
lesson29.py
177 lines (168 loc) · 5.79 KB
/
lesson29.py
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
# ООП-об'єктно орієнтоване програмування
# Основи ООП:
# 1) Класс
# 2) Обєкт
# 3) Методи
# 4) Атрибути
# dog_date = {
# "name": "Rex",
# "age": 5
# }
#
#
# def sit():
# print(f"{dog_date['name']} сів...")
#
#
# sit()
# класс для створення об'єкта Dog
# class Dog:
# def __init__(self, name, age):
# # Оголошення атрибутів
# self.name = name
# self.age = age
#
# # Всі функції оголошення в середині класів називається методами
# def sit(self):
# print(f"{self.name} сидить...")
#
#
# # Створення об'єкта на основі класу
# dog = Dog("Willie", 6)
# dog.sit()
#
# dog2 = Dog("Rex", 3)
# dog2.sit()
# Описуємо дім за допомоги ООП
# class House:
# def __init__(self, address, width, length, rooms_count, price, owner):
# self.address = address
# self.width = width
# self.length = length
# self.rooms_count = rooms_count
# self.price = price
# self.owner = owner
#
# def get_house_area(self):
# print(f"Площа будинку: {self.width*self.length} кв. метрів")
#
# def get_info(self):
# print("Адрес", self.address)
# print("Кількість кімнат", self.rooms_count)
# print("Ціна", self.price)
# print("Власник", self.owner)
#
# def change_owner(self, new_owner):
# self.owner = new_owner
# print(f"Новий власник: {new_owner}")
#
#
# house = House("Гуцала 3", 10, 20, 6, 100_000, "a3888s")
# house.get_house_area()
# house.get_info()
# house.change_owner(new_owner="Anna")
# house.get_info()
# class Person:
# def __init__(self, name, age, cash, weight, salary):
# self.name = name
# self.age = age
# self.cash = cash
# self.weight = weight
# self.salary = salary
#
# def earn_money(self, value):
# self.cash += value
# print(f"{self.name} заробив {value} грн")
#
# def get_cash_info(self):
# print(f"Гроші на рахунку: {self.cash} грн")
#
# def get_salary(self):
# self.cash += self.salary
# print(f'Вам поступила заробітня плата в розмірі {self.salary} грн')
#
# def buy(self, product, price):
# if price <= self.cash:
# print(f"{self.name} купив {product} за {price} грн")
# self.cash -= price
# else:
# print("У вас не вистачає коштів на рахунку!")
#
#
# askar = Person("Askar", 29, 40000, 80, 30_000)
# askar.get_cash_info()
# askar.buy("PlayStation 4", 25000)
# askar.get_cash_info()
# Класс — це блок оголошення через команду class
# Метод — це функція оголошення всередині классу
# Атрибут — це данні, які знаходяться в методі def __init__()
# Обєкт(Екзимпляр классу) — це створений на основі классу змінна
# self — це сполучна ланка в середині классу. Це посилання на об'єкт.
# Створіть класс Employee. Який має атрибути: name, salary, position(посада).
# Добавте методи
# new_position(position_name) - даний метод змінює позицію працівника
# raise_salary(amount) - даний метод збільшує зарплату працівника
# get_info() - виводить інформацію працівника
# Створіть в кінці обєкт і протестуйте його.
# class Employee:
# def __init__(self, name, salary, position):
# self.name = name
# self.salary = salary
# self.position = position
#
# def get_info(self):
# print(f"Ім'я: {self.name}")
# print(f"Посада працівника: {self.position}")
# print(f"Баланс: {self.salary}")
#
# def new_position(self, position_name):
# if position_name == self.position:
# print(f"Неможливо змінити обрану посаду {position_name}")
# else:
# self.position = position_name
# print(f"Нова позиція {position_name}")
#
# def raise_salary(self, amount):
# self.salary += amount
# print(f"Нараховано {amount}")
#
#
# a3888S = Employee("a3888s", 0, "Директор")
# a3888S.get_info()
# a3888S.new_position("Директор")
# a3888S.get_info()
# a3888S.raise_salary(10000)
# a3888S.get_info()
# Необов'язкові атрибути классу
# class Car:
#
# def __init__(self, model, color):
# self.model = model
# self.color = color
# self.odometr = 0
# self.tank = 40
#
# def drive(self):
# if self.tank > 0:
# print("машина рухається")
# self.odometr += 100
# self.tank -= 11
# else:
# print("Потрібно заправитись")
#
# def tanking(self, value):
# print("Ви заправились")
# self.tank += value
#
# def get_info(self):
# print(f"Бензин: {self.tank}")
# print(f"Пробіг: {self.odometr}")
#
#
# toyota = Car("Toyota Camry 75", "Black")
# toyota.drive()
# toyota.drive()
# toyota.drive()
# toyota.tanking(30)
# toyota.drive()
# toyota.get_info()