-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path6.classes.py
More file actions
145 lines (123 loc) · 5.41 KB
/
6.classes.py
File metadata and controls
145 lines (123 loc) · 5.41 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
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
# Вы приехали помогать на ферму Дядюшки Джо и видите вокруг себя множество разных животных:
#
# гусей "Серый" и "Белый"
# корову "Маньку"
# овец "Барашек" и "Кудрявый"
# кур "Ко-Ко" и "Кукареку"
# коз "Рога" и "Копыта"
# и утку "Кряква"
# Со всеми животными вам необходимо как-то взаимодействовать:
#
# кормить
# корову и коз доить
# овец стричь
# собирать яйца у кур, утки и гусей
# различать по голосам(коровы мычат, утки крякают и т.д.)
# Задача №1
# Нужно реализовать классы животных, не забывая использовать наследование, определить общие методы взаимодействия с животными и дополнить их в дочерних классах, если потребуется.
#
# Задача №2
# Для каждого животного из списка должен существовать экземпляр класса. Каждое животное требуется накормить и подоить/постричь/собрать яйца, если надо.
#
# Задача №3
# У каждого животного должно быть определено имя(self.name) и вес(self.weight).
#
# Необходимо посчитать общий вес всех животных(экземпляров класса);
# Вывести название самого тяжелого животного.
class Animals:
def __init__(self, name, weight):
self.name = name
self.weight = weight
def feed(self):
self.weight += 1
print('Животное покормлено')
class Birds(Animals):
def __init__(self, name, weight, type_bird, voice):
super().__init__(name, weight)
self.type_bird = type_bird
self.voice = voice
def collect_eggs(self, eggs=2):
self.eggs = eggs
self.weight -= (self.eggs * 0.2)
print(f'Получили яиц {self.eggs}')
class Cows(Animals):
def __init__(self, name, weight):
super().__init__(name, weight)
self.voice = 'Му-у-у'
def collect_milk(self, liters_milk=1):
self.liters_milk = liters_milk
self.weight -= self.liters_milk
print(f'Получили литров молока {self.liters_milk}')
class Goats(Animals):
def __init__(self, name, weight):
super().__init__(name, weight)
self.voice = 'Бе-е-е'
def collect_milk(self, liters_milk=1):
self.liters_milk = liters_milk
self.weight -= self.liters_milk
print(f'Получили литров молока {self.liters_milk}')
class Sheep(Animals):
def __init__(self, name, weight):
super().__init__(name, weight)
self.voice = 'Бе-е-е'
def collect_wool(self, collect_wool=0.8):
self.collect_wool = collect_wool
self.weight -= (self.collect_wool * 0.8)
print(f'Получили кг шерсти {self.collect_wool}')
geese_gray = Birds('Серый', 10, 'Гусь', 'Га-Га-Га')
geese_white = Birds('Белый', 12, 'Гусь', 'Га-Га-Га')
cows_manya = Cows('Манька', 150)
sheep_barashek = Sheep('Барашек', 50)
sheep_kudryaviy = Sheep('Кудрявый', 60)
chicken_koko = Birds('Ко-Ко', 9, 'Курица', 'Ко-ко-ко')
chicken_kukareku = Birds('Кукареку', 8, 'Курица', 'Ко-ко-ко')
goats_roga = Goats('Рога', 45)
goats_kopyta = Goats('Копыта', 47)
chicken_kryakva = Birds('Кряква', 11, 'Утка', 'Кря-Кря')
list_animals = [cows_manya, sheep_barashek, sheep_kudryaviy, goats_roga, goats_kopyta]
list_birds = [geese_gray, geese_white, chicken_koko, chicken_kukareku, chicken_kryakva]
all_animals_list = list_animals + list_birds
def info_animals():
for animal in all_animals_list:
print(animal.name)
print(animal.weight)
if hasattr(animal, 'type_bird'):
print(animal.type_bird)
print(animal.voice)
print()
def collect_artifacts(*args):
for animal in all_animals_list:
if hasattr(animal, 'type_bird'):
animal.collect_eggs(*args)
elif isinstance(animal, Cows) or isinstance(animal, Goats):
animal.collect_milk(*args)
elif isinstance(animal, Sheep):
animal.collect_wool(*args)
def feed_animals():
for animal in all_animals_list:
animal.feed()
def heaviest():
max_weight = 0
name_animals = ''
all_weight = 0
for animal in all_animals_list:
all_weight += animal.weight
if animal.weight > max_weight:
max_weight = animal.weight
name_animals = animal.name
print(f'Вес всех животных {all_weight} кг.')
print(f'Самый тяжёлый {name_animals}')
def main():
while True:
user_input = input('Введите команду: ')
if user_input == 'l':
info_animals()
elif user_input == 'c':
collect_artifacts()
elif user_input == 'f':
feed_animals()
elif user_input == 'm':
heaviest()
elif user_input == 'q':
break
main()