Menu
Coddy logo textTech

Akıllı Rehber Yöneticisi

Coddy'nin Python Journey'sinin Logic & Flow bölümünün bir parçası — ders 76 / 78.

challenge icon

Görev

Orta

Temiz bir kişi veritabanı oluşturmak için bir kişi sözlükleri listesini işleyen organize_contacts adında bir fonksiyon oluşturun.

Giriş listesindeki her kişi sözlüğü şu anahtarlara sahiptir:

  • name: Kişinin adı
  • email: Kişinin e-posta adresi
  • phone: Kişinin telefon numarası

Fonksiyonunuz şunları yapmalıdır:

  1. Yinelenen kişileri kaldırın (aynı e-posta veya telefon numarasına sahip kişiler), ilk karşılaşılanı koruyun
  2. Tüm e-postaları küçük harfe standartlaştırın
  3. Geçersiz e-posta adresine sahip kişileri filtreleyin
  4. Geçersiz telefon numarasına sahip kişileri filtreleyin
  5. Temizlenmiş kişi sözlüklerinden oluşan bir liste döndürün

Doğrulama kuralları:

  • Geçerli e-posta: '@' ve '.' içermeli ve boşluk içermemelidir
  • Geçerli telefon: Tam olarak 10 rakam içermelidir (tire veya parantez gibi rakam olmayan karakterleri yoksayın)

Telefon numaralarını temizlemek için, telefon numaralarından yalnızca sayısal rakamları ayıklamak üzere Python'un str.isdigit() metodunu kullanmalısınız. Bu metod, bir karakter rakam (0-9) ise True, aksi takdirde False döndürür; bu da onu rakam olmayan karakterleri filtrelemek için mükemmel kılar.

Örnek Giriş:

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

Beklenen Çıktı:

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

Kendin dene

def organize_contacts(contact_list):
    # Çözümünüz buraya
    
    # 1. Doğrulama için yardımcı fonksiyonlar oluşturun
    # - E-posta formatını doğrulamak için fonksiyon
    # - Telefon numaralarını temizlemek ve doğrulamak için fonksiyon
    
    # 2. Her bir kişiyi işleyin
    # - E-postayı temizleyin (küçük harf) ve telefonu temizleyin (yalnızca rakamlar)
    # - E-posta ve telefonun geçerli olup olmadığını kontrol edin
    # - Yinelenenleri kontrol edin
    
    # 3. Temiz kişi listesini döndürün
    pass

Logic & Flow bölümündeki tüm dersler