Skip to content

GoIT-Python-Web/bachelor-s-individual-work

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

📞 Адресна книга — Індивідуальне домашнє завдання

УВАГА! Це індивідуальне завдання. Виконуйте самостійно.

📋 Опис завдання

Це індивідуальне домашнє завдання з об'єктно-орієнтованого програмування на Python. Вам потрібно реалізувати систему управління адресною книгою з контактами та телефонними номерами.

🎯 Що потрібно зробити

У файлі main.py потрібно доповнити наступні класи:

1. Клас Name

  • Повинен наслідуватися від класу Field
  • Зберігає ім'я контакту

2. Клас Phone

  • Повинен наслідуватися від класу Field
  • Зберігає номер телефону
  • ВАЖЛИВО: Повинен валідувати номер телефону (рівно 10 цифр)
  • Викидає ValueError для невалідних номерів

3. Клас Record

Реалізувати методи:

  • add_phone(phone) - додати телефон
  • remove_phone(phone) - видалити телефон
  • edit_phone(old_phone, new_phone) - редагувати телефон
  • find_phone(phone) - знайти телефон (повертає об'єкт Phone або None)

4. Клас AddressBook

  • Повинен наслідуватися від UserDict
  • Реалізувати методи:
    • add_record(record) - додати запис
    • find(name) - знайти запис за ім'ям
    • delete(name) - видалити запис

🚀 Як запустити

Запуск основного коду:

python main.py

Запуск тестів:

python check_homework.py

✅ Як перевірити свою роботу

  1. Запустіть python check_homework.py
  2. Зелені повідомлення ✅ = тест пройшов
  3. Червоні повідомлення ❌ = потрібно виправити
  4. Сині повідомлення 🔧 = помилки в коді (перевірте синтаксис)

📝 Приклад очікуваного результату

Після правильної реалізації код повинен виводити:

Contact name: John, phones: 1234567890; 5555555555
Contact name: Jane, phones: 9876543210
Contact name: John, phones: 1112223333; 5555555555
John: 5555555555

🔍 Валідація телефонів

Валідні номери:

  • "1234567890"
  • "0504567890"

Невалідні номери:

  • "12345abcde" ❌ (містить літери)
  • "050456789" ❌ (9 цифр)
  • "05045678901" ❌ (11 цифр)

🆘 Поради

  1. Наслідування: Не забудьте class Name(Field): та class Phone(Field):
  2. Валідація: У Phone.__init__() перевіряйте, що номер складається з 10 цифр
  3. UserDict: AddressBook повинен наслідуватися від UserDict, використовуйте self.data
  4. Помилки: Якщо тести показують сині повідомлення - перевірте синтаксис коду

📚 Корисні посилання


💡 Підказка: Почніть з простих класів Name та Phone, потім переходьте до Record та AddressBook

About

Вступ до програмування (мова Python)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages