Akıllı Rehber Yöneticisi
Coddy'nin Python Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 76 / 78.
Görev
OrtaTemiz bir kişi veritabanı oluşturmak için kişi sözlüklerinden oluşan bir listeyi işleyen organize_contacts adlı bir işlev oluşturun.
Girdi listesindeki her kişi sözlüğü şu anahtarlara sahiptir:
name: Kişinin adıemail: Kişinin e-posta adresiphone: Kişinin telefon numarası
İşleviniz şunları yapmalıdır:
- Yinelenen kişileri kaldırın (aynı e-posta veya telefon numarasına sahip kişiler); ilk karşılaşılanı koruyun
- Tüm e-postaları küçük harfe dönüştürün
- Geçersiz e-posta adreslerine sahip kişileri filtreleyin
- Geçersiz telefon numaralarına sahip kişileri filtreleyin
- 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 yok sayın)
Telefon numaralarını temizlemek için telefon numaralarından yalnızca sayısal rakamları ayıklamak üzere Python'ın str.isdigit() yöntemini kullanmalısınız. Bu yöntem, bir karakter rakamsa (0-9) True, değilse False döndürür; bu da yöntemi rakam olmayan karakterleri filtrelemek için mükemmel kılar.
Örnek Girdi:
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ştur
# - E-posta formatını doğrulayan fonksiyon
# - Telefon numaralarını temizleyen ve doğrulayan fonksiyon
# 2. Her bir kişiyi işle
# - E-postayı (küçük harf) ve telefonu (yalnızca rakamlar) temizle
# - E-posta ve telefonun geçerli olup olmadığını kontrol et
# - Yinelenenleri kontrol et
# 3. Temiz kişi listesini döndür
passMantık ve Akış bölümündeki tüm dersler
1Değişken Keşfi
SabitlerÇoklu Değişken AtamalarıDeğişken TakasıYer Tutucu DeğişkenlerSayıları YuvarlamaListe Tür Dönüşümü4Rehber Uygulaması
Menüyü GörüntüleKişi Ekle7Kümeler Bölüm 2
Matematiksel İşlemler Bölüm 1Matematiksel İşlemler Bölüm 2Özet - Hazine AvıAlt Kümeler ve Üst KümelerKümeler Üzerinde YinelemeÖzet - Turnuva Takipçisi10Temel List Comprehension Yapıları
SözdizimiBasit Listeler OluşturmaKoşul EklemeVeri Toplulaştırma KullanımıÖzet - Liste EviÖzet - Özgürlük Elementleri13Envanter Yönetim Sistemi
Projeye Genel BakışÖğe Ekle2Sözlükler Bölüm 1
Sözlük Nedir?Sözlük OluşturmaDeğerlere ErişmeSözlükleri DeğiştirmeÖzet - Tarif Yöneticisi5İleri Seviye Karar Yapıları
Ternary OperatörüÜyelik KontrolleriKimlik KontrolleriGirintileme HatalarıÖzet - Tatil Filtresi8Öğrenci Kayıt Yöneticisi
Projeye Genel BakışÖğrenci Ekle11İleri Seviye Fonksiyonlar
Birden Fazla Değer DöndürmeLambda Fonksiyonları Bölüm 1Lambda Fonksiyonları Bölüm 2Tekrar Görevi - Lambda ile SıralamaÖzyinelemeli Fonksiyonlar Bölüm 1Özyinelemeli Fonksiyonlar Bölüm 2Tekrar - İç İçe Listeleri Toplama14Yüksek Mertebeden Fonksiyonlar
Map FonksiyonuFilter FonksiyonuÖzet - E-posta DoğrulayıcıÖzet - Sayı İşleyici3Sözlükler Bölüm 2
Sözlük Metotlarıİç İçe SözlüklerAnahtar KontrolüSözlüklerde DöngülerÖzet - Frekans Sayacı9İleri Düzey Veri Toplulaştırma
Toplam KullanımıMinimum ve Maksimumu BulmaVerileri Verimli SıralamaÖzet - Dictionary SıralayıcıKendi başına pratik yap: Online Python derleyicisi