Menu
Coddy logo textTech

Inteligentny menedżer kontaktów

Część sekcji Logika i przepływ programu ścieżki Python w Coddy. Lekcja 76 z 78.

challenge icon

Wyzwanie

Średni

Utwórz funkcję o nazwie organize_contacts, która przetwarza listę słowników kontaktów, aby utworzyć uporządkowaną bazę kontaktów.

Każdy słownik kontaktu na liście wejściowej ma następujące klucze:

  • name: Imię i nazwisko osoby
  • email: Adres e-mail osoby
  • phone: Numer telefonu osoby

Twoja funkcja powinna:

  1. Usuwać zduplikowane kontakty (kontakty z tym samym adresem e-mail lub numerem telefonu), zachowując pierwsze wystąpienie
  2. Standaryzować wszystkie adresy e-mail, zamieniając je na małe litery
  3. Odfiltrowywać kontakty z nieprawidłowymi adresami e-mail
  4. Odfiltrowywać kontakty z nieprawidłowymi numerami telefonu
  5. Zwracać listę uporządkowanych słowników kontaktów

Zasady walidacji:

  • Prawidłowy adres e-mail: musi zawierać „@” i „.” oraz nie może zawierać spacji
  • Prawidłowy numer telefonu: musi zawierać dokładnie 10 cyfr (zignoruj znaki niebędące cyframi, takie jak myślniki lub nawiasy)

Do czyszczenia numerów telefonów użyj metody str.isdigit() języka Python, aby wyodrębnić z numerów telefonów wyłącznie cyfry. Ta metoda zwraca True, jeśli znak jest cyfrą (0-9), a w przeciwnym razie zwraca False, dzięki czemu doskonale nadaje się do odfiltrowywania znaków niebędących cyframi.

Przykładowe dane wejściowe:

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

Oczekiwany wynik:

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

Spróbuj swoich sił

def organize_contacts(contact_list):
    # Tu wpisz swoje rozwiązanie
    
    # 1. Utwórz funkcje pomocnicze do walidacji
    # - Funkcja do sprawdzania poprawności formatu adresu e-mail
    # - Funkcja do czyszczenia i sprawdzania poprawności numerów telefonów
    
    # 2. Przetwórz każdy kontakt
    # - Oczyść adres e-mail (zamień litery na małe) i numer telefonu (pozostaw tylko cyfry)
    # - Sprawdź, czy adres e-mail i numer telefonu są poprawne
    # - Sprawdź, czy występują duplikaty
    
    # 3. Zwróć oczyszczoną listę kontaktów
    pass

Wszystkie lekcje w sekcji Logika i przepływ programu

Poćwicz samodzielnie: Kompilator Python online