مدير جهات اتصال ذكي
جزء من قسم Logic & Flow في رحلة Python على Coddy — الدرس 76 من 78.
التحدي
متوسطقم بإنشاء دالة باسم organize_contacts تقوم بمعالجة قائمة من قواميس جهات الاتصال لإنشاء قاعدة بيانات جهات اتصال نظيفة.
كل قاموس جهة اتصال في قائمة الإدخال يحتوي على هذه المفاتيح:
name: اسم الشخصemail: عنوان البريد الإلكتروني للشخصphone: رقم هاتف الشخص
يجب أن تقوم دالتك بما يلي:
- إزالة جهات الاتصال المكررة (جهات الاتصال التي لها نفس البريد الإلكتروني أو رقم الهاتف)، مع الاحتفاظ بأول ظهور لها
- توحيد جميع رسائل البريد الإلكتروني لتكون بأحرف صغيرة (lowercase)
- تصفية جهات الاتصال التي تحتوي على عناوين بريد إلكتروني غير صالحة
- تصفية جهات الاتصال التي تحتوي على أرقام هواتف غير صالحة
- إرجاع قائمة بقواميس جهات الاتصال التي تم تنظيفها
قواعد التحقق:
- البريد الإلكتروني الصالح: يجب أن يحتوي على '@' و '.'، ويجب ألا يحتوي على مسافات
- الهاتف الصالح: يجب أن يحتوي على 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
1استكشاف المتغيرات
الثوابتإسناد المتغيرات المتعددةتبديل المتغيراتالمتغيرات النائبةتقريب الأرقامتحويل القوائم4تطبيق سجل جهات الاتصال
عرض القائمةإضافة جهة اتصال7المجموعات - الجزء الثاني
العمليات الرياضية - الجزء الأولالعمليات الرياضية - الجزء الثانيمراجعة - البحث عن الكنزالمجموعات الجزئية والمجموعات الشاملةالتكرار عبر المجموعاتمراجعة - متتبع البطولة10أساسيات تضمين القوائم (List Comprehensions)
الصيغة البرمجيةإنشاء قوائم بسيطةإضافة الشروطاستخدام تجميع البياناتمراجعة - بيت القوائممراجعة - عناصر الحرية5اتخاذ القرارات المتقدم
المعامل الثلاثيالتحقق من الانتماءالتحقق من الهويةأخطاء الإزاحةمراجعة - فلتر العطلات8مدير سجلات الطلاب
نظرة عامة على المشروعإضافة طالب3القواميس - الجزء الثاني
دوال القواميسالقواميس المتداخلةالتحقق من وجود المفاتيحالتكرار عبر القواميسمراجعة - عداد التكرار9تجميع البيانات المتقدم
استخدام Sumإيجاد الحد الأدنى والأقصىفرز البيانات بكفاءةمراجعة - Dictionary Sorter12أساسيات معالجة الأخطاء
ما هي معالجة الأخطاء؟كتلة Try و Exceptالتعامل مع استثناءات متعددةمراجعة - أخطاء عربة التسوق