Skip to content
Open
Show file tree
Hide file tree
Changes from 40 commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
16d6e67
Create Lesson_01.py
evgeniypogoreliy Jan 25, 2023
3a32f48
Create Lesson_02.py
evgeniypogoreliy Jan 25, 2023
babb021
Create Lesson_03.py
evgeniypogoreliy Jan 25, 2023
13f9556
Create Lesson_04.py
evgeniypogoreliy Jan 25, 2023
cd586db
Create Lesson_05.py
evgeniypogoreliy Jan 25, 2023
cac1425
Create Lesson_06.py
evgeniypogoreliy Jan 25, 2023
4124c0e
Create Lesson_07.py
evgeniypogoreliy Jan 25, 2023
98980b1
Practical work 4
evgeniypogoreliy Jan 30, 2023
b173d00
Practical work 4
evgeniypogoreliy Jan 30, 2023
55b912b
Practical work 4
evgeniypogoreliy Jan 30, 2023
203d39f
Practical work 4
evgeniypogoreliy Jan 30, 2023
6ffa361
Practical work 4
evgeniypogoreliy Jan 30, 2023
8c7f74d
Practical work 4
evgeniypogoreliy Jan 30, 2023
fa4a73c
Practical work 4
evgeniypogoreliy Jan 30, 2023
1a74dae
Delete Lesson_01.py
evgeniypogoreliy Feb 2, 2023
56a112e
Delete Lesson_02.py
evgeniypogoreliy Feb 2, 2023
6a15565
Delete Lesson_03.py
evgeniypogoreliy Feb 2, 2023
37852ee
Delete Lesson_04.py
evgeniypogoreliy Feb 2, 2023
d984c17
Delete Lesson_05.py
evgeniypogoreliy Feb 2, 2023
f3ee376
Delete Lesson_06.py
evgeniypogoreliy Feb 2, 2023
307bea5
Delete Lesson_07.py
evgeniypogoreliy Feb 2, 2023
7563fec
Practical work 5
evgeniypogoreliy Feb 2, 2023
77f1868
Practical work 5
evgeniypogoreliy Feb 2, 2023
fa49010
Practical work 5
evgeniypogoreliy Feb 2, 2023
f03e726
Practical work 5
evgeniypogoreliy Feb 2, 2023
91c4d1c
Practical work 5
evgeniypogoreliy Feb 2, 2023
b0f4953
Practical work 5
evgeniypogoreliy Feb 2, 2023
03dbe20
Practical work 5
evgeniypogoreliy Feb 2, 2023
2459f00
Delete Less_7.py
evgeniypogoreliy Feb 7, 2023
6ec341a
Delete Less_6.py
evgeniypogoreliy Feb 7, 2023
13490ad
Delete Less_5.py
evgeniypogoreliy Feb 7, 2023
cd6e9b0
Delete Less_4.py
evgeniypogoreliy Feb 7, 2023
52539fd
Delete Less_3.py
evgeniypogoreliy Feb 7, 2023
af888a8
Delete Less_2.py
evgeniypogoreliy Feb 7, 2023
e4812f6
Delete Less_1.py
evgeniypogoreliy Feb 7, 2023
9a605ab
Practical work 6
evgeniypogoreliy Feb 7, 2023
661408b
Practical work 6
evgeniypogoreliy Feb 7, 2023
44cdd5e
Practical work 6
evgeniypogoreliy Feb 7, 2023
3a69e72
Practical work 6
evgeniypogoreliy Feb 7, 2023
b0efbf8
Practical work 6
evgeniypogoreliy Feb 7, 2023
bff2bd0
Delete Less_5.py
evgeniypogoreliy Feb 10, 2023
0c8864b
Delete Less_4.py
evgeniypogoreliy Feb 10, 2023
10e0d38
Delete Less_3.py
evgeniypogoreliy Feb 10, 2023
92e5ee1
Delete Less_2.py
evgeniypogoreliy Feb 10, 2023
815dbcd
Delete Less_1.py
evgeniypogoreliy Feb 10, 2023
6ea7028
Practical work 7
evgeniypogoreliy Feb 10, 2023
92f8ea5
Practical work 7
evgeniypogoreliy Feb 10, 2023
88c059b
Practical work 7
evgeniypogoreliy Feb 10, 2023
17e9197
Delete Less_1.py
evgeniypogoreliy Feb 12, 2023
a903767
Delete Less_2.py
evgeniypogoreliy Feb 12, 2023
8c09661
Delete Less_3.py
evgeniypogoreliy Feb 12, 2023
146cfe4
Practical work 8
evgeniypogoreliy Feb 12, 2023
6c65765
Practical work 8
evgeniypogoreliy Feb 12, 2023
f729457
Practical work 8
evgeniypogoreliy Feb 12, 2023
1ddac2a
Practical work 8
evgeniypogoreliy Feb 12, 2023
31e3768
Practical work 8
evgeniypogoreliy Feb 12, 2023
4bd25a9
Practical work 8
evgeniypogoreliy Feb 12, 2023
ec9cefd
Praticical work 8
evgeniypogoreliy Feb 12, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions Less_1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# 1. Создать класс TrafficLight (светофор).
# определить у него один атрибут color (цвет) и метод running (запуск);
# атрибут реализовать как приватный;
# в рамках метода реализовать переключение светофора в режимы: красный, жёлтый, зелёный;
# продолжительность первого состояния (красный) составляет 7 секунд, второго
# (жёлтый) — 2 секунды, третьего (зелёный) — на ваше усмотрение;
# переключение между режимами должно осуществляться только в указанном порядке (красный, жёлтый, зелёный);
# проверить работу примера, создав экземпляр и вызвав описанный метод.
# Задачу можно усложнить, реализовав проверку порядка режимов.
# При его нарушении выводить соответствующее сообщение и завершать скрипт.

import time
class TrafficLight:
__color = ['Красный', 'Желтый', 'Зеленый']

def running(self):
for i in range(3):
print(f'Светофор горит: {TrafficLight.__color[i]}')
if TrafficLight.__color[i] == 'Красный':
time.sleep(7)
elif TrafficLight.__color[i] == 'Желтый':
time.sleep(2)
elif TrafficLight.__color[i] == 'Зеленный':
time.sleep(5)

a = TrafficLight()
a.running()
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

выполнено

24 changes: 24 additions & 0 deletions Less_2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# 2. Реализовать класс Road (дорога).
# определить атрибуты: length (длина), width (ширина);
# значения атрибутов должны передаваться при создании экземпляра класса;
# атрибуты сделать защищёнными;
# определить метод расчёта массы асфальта, необходимого для покрытия всей дороги;
# использовать формулу: длина*ширина*масса асфальта для покрытия одного кв. метра дороги асфальтом,
# толщиной в 1 см*число см толщины полотна;
# проверить работу метода.
# Например: 20 м*5000 м*25 кг*5 см = 12500 т.

class Road:
def __init__(self, _length, _width):
self._length = _length
self._width = _width

def mass(self):
self.weight = 25
self.thickness = 0.05
return self._length * self._width * self.weight * self.thickness


r = Road(20, 5000)

print(r.mass())
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

выполнено

36 changes: 36 additions & 0 deletions Less_3.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# 3. Реализовать базовый класс Worker (работник).
# определить атрибуты: name, surname, position (должность), income (доход);
# последний атрибут должен быть защищённым и ссылаться на словарь, содержащий элементы:
# оклад и премия, например, {"wage": wage, "bonus": bonus};
# создать класс Position (должность) на базе класса Worker;
# в классе Position реализовать методы получения полного имени сотрудника (get_full_name) и
# дохода с учётом премии (get_total_income);
# проверить работу примера на реальных данных: создать экземпляры класса Position, передать данные,
# проверить значения атрибутов, вызвать методы экземпляров.

class Worker:

def __init__(self, name, surname, position, wage, bonus):
self.name = name
self.surname = surname
self.position = position
self._income = {"wage": wage, "bonus": bonus}


class Position(Worker):

def __init__(self, name, surname, position, wage, bonus):
super().__init__(name, surname, position, wage, bonus)

def get_full_name(self):
return f'{self.name} {self.surname}'

def get_total_income(self):
return self._income.get('wage') + self._income.get('bonus')



res = Position('Иван', 'Петров', 'Грузчик', 50000, 3000)
print(res.get_full_name())
print(res.position)
print(res.get_total_income())
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

выполнено

87 changes: 87 additions & 0 deletions Less_4.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
# 4. Реализуйте базовый класс Car.
# у класса должны быть следующие атрибуты: speed, color, name, is_police (булево).
# А также методы: go, stop, turn(direction), которые должны сообщать, что машина
# поехала, остановилась, повернула (куда);
# опишите несколько дочерних классов: TownCar, SportCar, WorkCar, PoliceCar;
# добавьте в базовый класс метод show_speed, который должен показывать текущую скорость автомобиля;
# для классов TownCar и WorkCar переопределите метод show_speed. При значении скорости свыше
# 60 (TownCar) и 40 (WorkCar) должно выводиться сообщение о превышении скорости.
# Создайте экземпляры классов, передайте значения атрибутов. Выполните доступ к атрибутам, выведите
# результат. Вызовите методы и покажите результат.

class Car:
def __init__(self, speed, color, name, is_police):
self.speed = speed
self.color = color
self.name = name
self.is_police = is_police

def go(self):
return f'{self.name} едет'

def stop(self):
return f'{self.name} остановился'

def turn_right(self):
return f'{self.name} перевернулся в право'

def turn_left(self):
return f'{self.name} перевернулся в лево'

def show_speed(self):
return f'Скорость {self.name} равна {self.speed}'


class TownCar(Car):
def __init__(self, speed, color, name, is_police):
super().__init__(speed, color, name, is_police)

def show_speed(self):
print(f'Скорость городского автомобиля {self.name} равна {self.speed}')

if self.speed > 40:
return f' {self.name} привысил скорость'
else:
return f'{self.name} без привышения скорости'

class SportCar(Car):
def __init__(self, speed, color, name, is_police):
super().__init__(speed, color, name, is_police)


class WorkCar(Car):
def __init__(self, speed, color, name, is_police):
super().__init__(speed, color, name, is_police)

def show_speed(self):
print(f'Скорость рабочего автомобиля {self.name} равна {self.speed}')

if self.speed > 60:
return f'Скорость {self.name} превышена'


class PoliceCar(Car):
def __init__(self, speed, color, name, is_police):
super().__init__(speed, color, name, is_police)

def police(self):
if self.is_police:
return f'{self.name} полицейская машина'
else:
return f'{self.name} полицейская машина'


gaz = SportCar(100, 'красный', 'ГАЗ', False)
zaz = TownCar(30, 'белый', 'ЗАЗ', False)
lada = WorkCar(70, 'желтый', 'Лада', True)
uaz = PoliceCar(110, 'синий', 'Ford', True)
print(lada.turn_left())
print(f'Когда {zaz.turn_right()}, тогда {gaz.stop()}')
print(f'{lada.go()} со скоростью {lada.show_speed()}')
print(f'{lada.name} имеет цвет {lada.color}')
print(f'{gaz.name} полицейский автомобиль? {gaz.is_police}')
print(f'{lada.name} полицейский автомобиль? {lada.is_police}')
print(gaz.show_speed())
print(zaz.show_speed())
print(uaz.police())
print(uaz.show_speed())
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

выполнено

46 changes: 46 additions & 0 deletions Less_5.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# 5. Реализовать класс Stationery (канцелярская принадлежность).
# определить в нём атрибут title (название) и метод draw (отрисовка).
# Метод выводит сообщение «Запуск отрисовки»;
# создать три дочерних класса Pen (ручка), Pencil (карандаш), Handle (маркер);
# в каждом классе реализовать переопределение метода draw. Для каждого класса
# метод должен выводить уникальное сообщение;
# создать экземпляры классов и проверить, что выведет описанный метод для каждого экземпляра.

class Stationary:
def __init__(self, title):
self.title = title

def draw(self):
return f'Запуск отрисовки {self.title}'


class Pen(Stationary):
def __init__(self, title):
super().__init__(title)

def draw(self):
return f'Вы взяли {self.title}. Запуск отрисовки ручкой'


class Pencil(Stationary):
def __init__(self, title):
super().__init__(title)

def draw(self):
return f'Вы взяли {self.title}. Запуск отрисовки карандашом'


class Handle(Stationary):
def __init__(self, title):
super().__init__(title)

def draw(self):
return f'Вы взяли {self.title}. Запуск отрисовки маркером'


pen = Pen('Ручка')
pencil = Pencil('Карандаш')
handle = Handle('Маркер')
print(pen.draw())
print(pencil.draw())
print(handle.draw())
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

выполнено