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

دمج كل شيء

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

challenge icon

التحدي

سهل

الآن بعد أن قمت ببناء جميع الوظائف الفردية لدفتر جهات الاتصال (Contact Book)، حان الوقت لتجميعها معاً لإنشاء البرنامج الكامل!


مهمتك:

  1. اجمع الوظائف التي قمت بإنشائها:
    • display_menu: تعرض خيارات القائمة للمستخدم.
    • add_contact: تضيف جهة اتصال جديدة إلى دفتر جهات الاتصال.
    • view_contact: تعرض تفاصيل جهة اتصال محددة.
    • edit_contact: تحدث معلومات جهة اتصال موجودة.
    • delete_contact: تزيل جهة اتصال من دفتر جهات الاتصال.
    • list_all_contacts: تعرض جميع جهات الاتصال في دفتر جهات الاتصال.
  2. أنشئ قاموساً يسمى contact_book لتخزين جهات الاتصال.
  3. اكتب حلقة تكرارية (loop) تقوم بما يلي:
    • تعرض القائمة باستخدام display_menu.
    • تقبل إدخال المستخدم لاختيار القائمة.
    • تستدعي الوظيفة المناسبة بناءً على اختيار المستخدم.
    • تطبع "Invalid choice. Please try again." إذا أدخل المستخدم خياراً ليس من خيارات القائمة الصالحة.
    • تستمر حتى يختار المستخدم خيار الخروج من البرنامج.

السلوك المتوقع:

عند تشغيل البرنامج، يجب أن يقوم بما يلي:

  1. إظهار قائمة من الخيارات ليختار المستخدم من بينها.
  2. السماح للمستخدم بالتفاعل مع دفتر جهات الاتصال من خلال استدعاء الوظيفة المناسبة.
  3. طباعة "Invalid choice. Please try again." عندما يدخل المستخدم خياراً غير معروف.
  4. الخروج من البرنامج بشكل نظيف عندما يختار المستخدم خيار "Exit".

تجمع هذه الخطوة النهائية كل المعرفة التي اكتسبتها في تطبيق دفتر جهات اتصال يعمل بكامل طاقته. استمتع برؤية عملك الشاق وهو يكتمل! 🎉

جرّب بنفسك

def display_menu():
    print("Contact Book Menu:")
    print("1. Add Contact")
    print("2. View Contact")
    print("3. Edit Contact")
    print("4. Delete Contact")
    print("5. List All Contacts")
    print("6. Exit")

def add_contact(contact_book):
    name = input()
    if name in contact_book:
        print("Contact already exists!")
        return
    phone = input()
    email = input()
    address = input()
    contact_book[name] = {"phone": phone, "email": email, "address": address}
    print("Contact added successfully!")

def view_contact(contact_book):
    name = input()
    if name in contact_book:
        contact = contact_book[name]
        print(f"Name: {name}")
        print(f"Phone: {contact['phone']}")
        print(f"Email: {contact['email']}")
        print(f"Address: {contact['address']}")
    else:
        print("Contact not found!")

def edit_contact(contact_book):
    name = input()
    if name in contact_book:
        phone = input()
        email = input()
        address = input()

        if phone == '':
            phone = contact_book[name]['phone']
        if email == '':
            email = contact_book[name]['email']
        if address == '':
            address = contact_book[name]['address']

        contact_book[name] = {"phone": phone, "email": email, "address": address}
        print("Contact updated successfully!")
    else:
        print("Contact not found!")

def delete_contact(contact_book):
    name = input()
    if name in contact_book:
        del contact_book[name]
        print("Contact deleted successfully!")
    else:
        print("Contact not found!")

def list_all_contacts(contact_book):
    if not contact_book:
        print("No contacts available.")
    else:
        for name, details in contact_book.items():
            print(f"Name: {name}")
            print(f"Phone: {details['phone']}")
            print(f"Email: {details['email']}")
            print(f"Address: {details['address']}")
            print()  # Blank line between contacts for readability

جميع دروس Logic & Flow