دمج كل شيء
جزء من قسم Logic & Flow في رحلة Python على Coddy — الدرس 23 من 78.
التحدي
سهلالآن بعد أن قمت ببناء جميع الوظائف الفردية لدفتر جهات الاتصال (Contact Book)، حان الوقت لتجميعها معاً لإنشاء البرنامج الكامل!
مهمتك:
- اجمع الوظائف التي قمت بإنشائها:
display_menu: تعرض خيارات القائمة للمستخدم.add_contact: تضيف جهة اتصال جديدة إلى دفتر جهات الاتصال.view_contact: تعرض تفاصيل جهة اتصال محددة.edit_contact: تحدث معلومات جهة اتصال موجودة.delete_contact: تزيل جهة اتصال من دفتر جهات الاتصال.list_all_contacts: تعرض جميع جهات الاتصال في دفتر جهات الاتصال.
- أنشئ قاموساً يسمى
contact_bookلتخزين جهات الاتصال. - اكتب حلقة تكرارية (loop) تقوم بما يلي:
- تعرض القائمة باستخدام
display_menu. - تقبل إدخال المستخدم لاختيار القائمة.
- تستدعي الوظيفة المناسبة بناءً على اختيار المستخدم.
- تطبع
"Invalid choice. Please try again."إذا أدخل المستخدم خياراً ليس من خيارات القائمة الصالحة. - تستمر حتى يختار المستخدم خيار الخروج من البرنامج.
- تعرض القائمة باستخدام
السلوك المتوقع:
عند تشغيل البرنامج، يجب أن يقوم بما يلي:
- إظهار قائمة من الخيارات ليختار المستخدم من بينها.
- السماح للمستخدم بالتفاعل مع دفتر جهات الاتصال من خلال استدعاء الوظيفة المناسبة.
- طباعة "Invalid choice. Please try again." عندما يدخل المستخدم خياراً غير معروف.
- الخروج من البرنامج بشكل نظيف عندما يختار المستخدم خيار "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
1استكشاف المتغيرات
الثوابتإسناد المتغيرات المتعددةتبديل المتغيراتالمتغيرات النائبةتقريب الأرقامتحويل القوائم4تطبيق سجل جهات الاتصال
عرض القائمةإضافة جهة اتصال7المجموعات - الجزء الثاني
العمليات الرياضية - الجزء الأولالعمليات الرياضية - الجزء الثانيمراجعة - البحث عن الكنزالمجموعات الجزئية والمجموعات الشاملةالتكرار عبر المجموعاتمراجعة - متتبع البطولة10أساسيات تضمين القوائم (List Comprehensions)
الصيغة البرمجيةإنشاء قوائم بسيطةإضافة الشروطاستخدام تجميع البياناتمراجعة - بيت القوائممراجعة - عناصر الحرية5اتخاذ القرارات المتقدم
المعامل الثلاثيالتحقق من الانتماءالتحقق من الهويةأخطاء الإزاحةمراجعة - فلتر العطلات8مدير سجلات الطلاب
نظرة عامة على المشروعإضافة طالب3القواميس - الجزء الثاني
دوال القواميسالقواميس المتداخلةالتحقق من وجود المفاتيحالتكرار عبر القواميسمراجعة - عداد التكرار9تجميع البيانات المتقدم
استخدام Sumإيجاد الحد الأدنى والأقصىفرز البيانات بكفاءةمراجعة - Dictionary Sorter12أساسيات معالجة الأخطاء
ما هي معالجة الأخطاء؟كتلة Try و Exceptالتعامل مع استثناءات متعددةمراجعة - أخطاء عربة التسوق