Menu
CoddyTech

Trình quản lý danh bạ thông minh

Thuộc phần Logic và luồng chương trình trong hành trình Python của Coddy. Bài học 76 trên 78.

challenge icon

Thử thách

Trung bình

Tạo một hàm có tên organize_contacts để xử lý danh sách từ điển liên hệ và tạo cơ sở dữ liệu liên hệ sạch.

Mỗi từ điển liên hệ trong danh sách đầu vào có các khóa sau:

  • name: Tên của người đó
  • email: Địa chỉ email của người đó
  • phone: Số điện thoại của người đó

Hàm của bạn cần:

  1. Xóa các liên hệ trùng lặp (các liên hệ có cùng email hoặc số điện thoại), giữ lại lần xuất hiện đầu tiên
  2. Chuẩn hóa tất cả email thành chữ thường
  3. Loại bỏ các liên hệ có địa chỉ email không hợp lệ
  4. Loại bỏ các liên hệ có số điện thoại không hợp lệ
  5. Trả về danh sách từ điển liên hệ đã được làm sạch

Quy tắc xác thực:

  • Email hợp lệ: Phải chứa '@' và '.', đồng thời không được có khoảng trắng
  • Số điện thoại hợp lệ: Phải chứa chính xác 10 chữ số (bỏ qua các ký tự không phải chữ số như dấu gạch ngang hoặc dấu ngoặc đơn)

Để làm sạch số điện thoại, bạn nên dùng phương thức str.isdigit() của Python để chỉ trích xuất các chữ số từ số điện thoại. Phương thức này trả về True nếu ký tự là một chữ số (0-9) và False nếu không phải, nên rất phù hợp để lọc bỏ các ký tự không phải chữ số.

Đầu vào ví dụ:

contacts = [
    {"name": "John Doe", "email": "john@email.com", "phone": "123-456-7890"}
]

Đầu ra dự kiến:

[
    {"name": "John Doe", "email": "john@email.com", "phone": "1234567890"}
]

Tự làm thử

def organize_contacts(contact_list):
    # Viết lời giải của bạn ở đây
    
    # 1. Tạo các hàm (function) hỗ trợ kiểm tra tính hợp lệ
    # - Hàm kiểm tra định dạng email
    # - Hàm làm sạch và kiểm tra tính hợp lệ của số điện thoại
    
    # 2. Xử lý từng liên hệ
    # - Làm sạch email (chuyển thành chữ thường) và số điện thoại (chỉ giữ chữ số)
    # - Kiểm tra email và số điện thoại có hợp lệ không
    # - Kiểm tra liên hệ trùng lặp
    
    # 3. Trả về danh sách liên hệ đã làm sạch
    pass

Tất cả bài học trong Logic và luồng chương trình

Tự luyện tập: Trình biên dịch Python online