Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

مدير جهات اتصال ذكي

جزء من قسم Logic & Flow في رحلة Python على Coddy — الدرس 76 من 78.

challenge icon

التحدي

متوسط

قم بإنشاء دالة باسم organize_contacts تقوم بمعالجة قائمة من قواميس جهات الاتصال لإنشاء قاعدة بيانات جهات اتصال نظيفة.

كل قاموس جهة اتصال في قائمة الإدخال يحتوي على هذه المفاتيح:

  • name: اسم الشخص
  • email: عنوان البريد الإلكتروني للشخص
  • phone: رقم هاتف الشخص

يجب أن تقوم دالتك بما يلي:

  1. إزالة جهات الاتصال المكررة (جهات الاتصال التي لها نفس البريد الإلكتروني أو رقم الهاتف)، مع الاحتفاظ بأول ظهور لها
  2. توحيد جميع رسائل البريد الإلكتروني لتكون بأحرف صغيرة (lowercase)
  3. تصفية جهات الاتصال التي تحتوي على عناوين بريد إلكتروني غير صالحة
  4. تصفية جهات الاتصال التي تحتوي على أرقام هواتف غير صالحة
  5. إرجاع قائمة بقواميس جهات الاتصال التي تم تنظيفها

قواعد التحقق:

  • البريد الإلكتروني الصالح: يجب أن يحتوي على '@' و '.'، ويجب ألا يحتوي على مسافات
  • الهاتف الصالح: يجب أن يحتوي على 10 أرقام بالضبط (تجاهل الرموز غير الرقمية مثل الشرطات أو الأقواس)

لتنظيف أرقام الهواتف، يجب عليك استخدام تابع str.isdigit() في بايثون لاستخراج الأرقام العددية فقط من أرقام الهواتف. يعيد هذا التابع True إذا كان الرمز رقماً (0-9) و False خلاف ذلك، مما يجعله مثالياً لتصفية الرموز غير الرقمية.

مثال للإدخال:

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

المخرجات المتوقعة:

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

جرّب بنفسك

def organize_contacts(contact_list):
    # حلك هنا
    
    # 1. إنشاء دوال مساعدة للتحقق من الصحة
    # - دالة للتحقق من تنسيق البريد الإلكتروني
    # - دالة لتنظيف والتحقق من أرقام الهواتف
    
    # 2. معالجة كل جهة اتصال
    # - تنظيف البريد الإلكتروني (أحرف صغيرة) والهاتف (أرقام فقط)
    # - التحقق مما إذا كان البريد الإلكتروني والهاتف صالحين
    # - التحقق من وجود تكرارات
    
    # 3. إرجاع قائمة جهات الاتصال النظيفة
    pass

جميع دروس Logic & Flow