Menu
Coddy logo textTech

מנהל אנשי קשר חכם

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Python של Coddy. שיעור 76 מתוך 78.

challenge icon

אתגר

בינוני

צרו פונקציה בשם organize_contacts שמעבדת רשימה של מילוני אנשי קשר כדי ליצור מסד נתונים נקי של אנשי קשר.

לכל מילון של איש קשר ברשימת הקלט יש את המפתחות הבאים:

  • name: שם האדם
  • email: כתובת האימייל של האדם
  • phone: מספר הטלפון של האדם

הפונקציה שלכם צריכה:

  1. להסיר אנשי קשר כפולים (אנשי קשר עם אותה כתובת אימייל או אותו מספר טלפון), תוך שמירה על ההופעה הראשונה
  2. להמיר את כל כתובות האימייל לאותיות קטנות
  3. לסנן אנשי קשר עם כתובות אימייל לא תקינות
  4. לסנן אנשי קשר עם מספרי טלפון לא תקינים
  5. להחזיר רשימה של מילוני אנשי קשר שעברו ניקוי

כללי אימות:

  • כתובת אימייל תקינה: חייבת להכיל '@' ו-'.', ואסור שיהיו בה רווחים
  • מספר טלפון תקין: חייב להכיל בדיוק 10 ספרות (התעלמו מתווים שאינם ספרות, כמו מקפים או סוגריים)

כדי לנקות מספרי טלפון, עליכם להשתמש בשיטה str.isdigit() של Python כדי לחלץ ממספרי הטלפון רק את הספרות. שיטה זו מחזירה 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

כל השיעורים ביחידה לוגיקה וזרימת תוכנית

תרגלו בעצמכם: קומפיילר Python אונליין