Python Практика
Практика Python
Теорія – це коли все відомо, але нічого не працює.
Практика – це коли все працює, але ніхто не знає чому.
Ми ж поєднуємо теорію та практику: нічого не працює і ніхто не знає чому!Альберт Ейнштейн
Платформа replit - ide у браузері
Де можна попрактикуватися - checkio
Завдання
1. Human and Planet
Створити клас Human
- параметри
name,date of birth - метод
to_str - метод
get_age
Створити клас Planet
- параметр
name - метод
to_str - метод
add_humans([Human]) - метод
get_count(повертає кількість людей)
При виконані скрипту повинні відпрацювати всі методи класів.
Додати до класів наступні методи
__init____str__- методи порівняння
- зробити міксин з
__new__змінити так, щоб логував створення класу
2. User and Admin
Умова: Розробити клас “Користувач” (User) та “Адміністратор” (Admin), які будуть представляти користувачів системи.
-
Створіть клас “Користувач” (User) з наступними властивостями:
- Ім’я (name) - рядок, що містить ім’я користувача.
- Вік (age) - ціле число, що представляє вік користувача.
- Електронна пошта (email) - рядок, що містить електронну адресу користувача.
-
Додайте методи до класу “Користувач” (User):
get_name(self): повертає ім’я користувача.get_age(self): повертає вік користувача.get_email(self): повертає електронну адресу користувача.set_name(self, new_name): встановлює нове ім’я користувача.set_age(self, new_age): встановлює новий вік користувача.set_email(self, new_email): встановлює нову електронну адресу користувача.
-
Напишіть метод
print_info(self), який виводитиме інформацію про користувача у наступному форматі: “Користувач: {ім’я}. Вік: {вік}. Електронна пошта: {електронна_пошта}”. -
Створіть об’єкт класу “Користувач” і протестуйте всі методи, переконавшись, що вони працюють коректно.
-
Доповніть клас “Користувач” (User) новими властивостями та методами, які будуть відповідати за інформацію про користувача, такі як:
- Місце проживання (address) - рядок, що містить адресу користувача.
- Номер телефону (phone_number) - рядок, що містить номер телефону користувача.
- Метод
set_address(self, new_address): встановлює нове місце проживання користувача. - Метод
set_phone_number(self, new_phone_number): встановлює новий номер телефону користувача.
-
Додайте методи
get_address(self)таget_phone_number(self), які повертатимуть місце проживання та номер телефону користувача відповідно. -
Напишіть метод
print_additional_info(self), який буде виводити додаткову інформацію про користувача у наступному форматі: “Користувач: {ім’я}. Вік: {вік}. Електронна пошта: {електронна_пошта}. Місце проживання: {місце_проживання}. Номер телефону: {номер_телефону}”. -
Протестуйте всі нові властивості та методи, створивши новий об’єкт класу “Користувач” і викликавши відповідні методи для встановлення та отримання значень.
-
Використовуючи клас “Користувач” (User), створіть систему, яка зберігатиме дані про кілька користувачів. Додайте методи для додавання нових користувачів до системи, видалення користувачів та отримання списку всіх користувачів.
-
Напишіть метод
get_all_users(self), який повертатиме список усіх користувачів у системі. -
Додайте метод
remove_user(self, user_id), який буде видаляти користувача з системи за його унікальним ідентифікатором (user_id). -
Протестуйте роботу методів для додавання, видалення та отримання користувачів з системи.
-
Створіть новий клас “Адміністратор” (Admin), який успадковуватиме властивості та методи класу “Користувач” (User).
-
Додайте нову властивість до класу “Адміністратор” (Admin) - “рівень доступу” (access_level), який буде представляти рівень привілеїв адміністратора (наприклад, 1 - звичайний адміністратор, 2 - головний адміністратор).
-
Напишіть метод
get_access_level(self), який повертатиме рівень доступу адміністратора. -
Перевизначте метод
print_info(self)в класі “Адміністратор” (Admin), так щоб він виводив інформацію про адміністратора з додатковим полем “Рівень доступу”. -
Створіть об’єкт класу “Адміністратор” (Admin) і викличте методи для встановлення, отримання та виведення інформації про адміністратора.
-
Протестуйте успадкування, створивши кілька об’єктів класу “Адміністратор” (Admin) та викликавши методи як від батьківського класу “Користувач” (User), так і з додатковими методами та властивостями, що є лише у класі “Адміністратор” (Admin).
-
Розширте систему користувачів, щоб вона підтримувала як звичайних користувачів, так і адміністраторів. Застосуйте успадкування, створивши відповідні класи та методи для додавання, видалення та отримання користувачів.
-
Протестуйте роботу системи, викликаючи методи для додавання, видалення та отримання користувачів як звичайних користувачів, так і адміністраторів.
-
Додати для set_методів власні винятки і замість print викликате саме їх.
-
Розділити код на файли.
Person -> Student -> Teacher
Person
Створіть клас Person, який представляє особу. Клас повинен мати наступні атрибути:
first_name(ім’я)last_name(прізвище)age(вік)
Клас повинен мати метод __init__ для ініціалізації атрибутів, а також метод get_full_name для отримання повного імені особи.
Student
Створіть клас Student, який успадковує клас Person. Клас Student повинен мати додатковий атрибут:
student_id(ідентифікатор студента)
Додайте метод __init__ для ініціалізації атрибуту student_id. Розширте метод get_full_name для включення ідентифікатора студента у повне ім’я.
Teacher Створіть клас Teacher, який також успадковує клас Person. Клас Teacher повинен мати додатковий атрибут:
employee_id(ідентифікатор працівника)
Додайте метод __init__ для ініціалізації атрибуту employee_id. Створіть новий метод teach, який буде друкувати повідомлення про те, що вчитель надає урок.
Завдання для командної роботи:
Ваша команда повинна працювати разом над цим завданням:
- Спільно обговоріть структуру класів і розділіть завдання між членами команди.
- Кожен член команди повинен реалізувати один із трьох класів.
- Після того як всі класи реалізовано, об’єднайте їх у одному скрипті.
- Створіть об’єкти для кожного класу та викличте відповідні методи для перевірки правильності реалізації.