جدول المحتويات
Python هي لغة برمجة متعددة الاستخدامات وقوية تتيح للمطورين تحويل أفكارهم إلى واقع بسرعة وكفاءة. في هذه السلسلة، سنتناول مجموعة من المشاريع، بدءًا من البسيط وزيادة التعقيد تدريجيًا. في مشروعنا الأول، سنبني تطبيق قائمة المهام (To-Do List Application).
ما الذي ستتعلمه؟
- أساسيات بناء الجمل والعمليات في Python.
- التعامل مع القوائم والقواميس.
- إنشاء وظائف قابلة لإعادة الاستخدام.
- التفاعل مع واجهة الأوامر النصية (Command-Line).
نظرة عامة على المشروع: تطبيق قائمة المهام
تطبيق قائمة المهام يساعد المستخدمين في تتبع المهام الخاصة بهم. سيتيح تطبيقنا للمستخدمين:
- إضافة مهام.
- عرض قائمة المهام.
- تحديد المهام كمكتملة.
- حذف المهام.
- إنهاء التطبيق.
تنفيذ المشروع خطوة بخطوة
1. إعداد البيئة
تثبيت Python
- قم بتنزيل Python من python.org.
- اختر الإصدار المناسب لنظام التشغيل الخاص بك واتبع تعليمات التثبيت.
- أثناء التثبيت، تأكد من تحديد الخيار لإضافة Python إلى PATH.
- تحقق من التثبيت بفتح الطرفية أو موجه الأوامر وكتابة:



python --version
تثبيت Git Bash (اختياري)
Git Bash هو واجهة طرفية توفر بيئة أوامر مشابهة لبيئة Unix على نظام ويندوز. يمكنك تنزيله من git-scm.com:




إعداد محرر النصوص أو بيئة التطوير المتكاملة (IDE)
- قم بتنزيل محرر أكواد مثل VSCode أو بيئة تطوير مثل PyCharm.
- قم بتثبيت الإضافات المتعلقة بPython لتحسين تجربة الكتابة (مثل إضافة Python لـ VSCode).
إعداد بيئة عمل منظمة
- قم بإنشاء مجلد جديد للمشروع، ويفضل أن يكون مخصصًا لتطبيقاتك البرمجية.
- داخل المجلد، قم بإنشاء ملف جديد باسم
todo_list.py
- يمكنك إنشاء ملف إضافي مثل
README.md
لكتابة ملاحظات حول المشروع.
2. تصميم سير عمل التطبيق
سيستخدم التطبيق نهجًا قائمًا على القوائم (Menu-driven). سيختار المستخدم خيارًا من القائمة لتنفيذ الإجراءات. إليك كيفية سير العمل:
- عرض خيارات القائمة.
- قبول إدخال المستخدم.
- تنفيذ الإجراء المختار.
- التكرار حتى يقرر المستخدم إنهاء التطبيق.
3. كتابة الكود
لنبدأ بالتنفيذ.
الخطوة 1: تهيئة قائمة المهام
import sys
sys.stdout.reconfigure(encoding='utf-8')
# إنشاء قائمة فارغة لتخزين المهام
tasks = []
الخطوة 2: تعريف وظائف القائمة
- وظيفة عرض القائمة
def display_menu():
print("\nقائمة المهام")
print("1. إضافة مهمة")
print("2. عرض المهام")
print("3. تحديد مهمة كمكتملة")
print("4. حذف مهمة")
print("5. إنهاء التطبيق")
- وظيفة إضافة مهمة
def add_task():
task = input("أدخل المهمة: ")
tasks.append({"task": task, "completed": False})
print(f"تمت إضافة المهمة '{task}'.")
- وظيفة عرض المهام
def view_tasks():
if not tasks:
print("لا توجد مهام في القائمة.")
return
for idx, task in enumerate(tasks, start=1):
status = "[x]" if task["completed"] else "[ ]"
print(f"{idx}. {status} {task['task']}")
- وظيفة تحديد مهمة كمكتملة
def mark_completed():
view_tasks()
try:
task_num = int(input("أدخل رقم المهمة لتحديدها كمكتملة: "))
if 1 <= task_num <= len(tasks):
tasks[task_num - 1]["completed"] = True
print(f"تم تحديد المهمة {task_num} كمكتملة.")
else:
print("رقم المهمة غير صالح.")
except ValueError:
print("يرجى إدخال رقم صالح.")
- وظيفة حذف مهمة
def delete_task():
view_tasks()
try:
task_num = int(input("أدخل رقم المهمة لحذفها: "))
if 1 <= task_num <= len(tasks):
removed_task = tasks.pop(task_num - 1)
print(f"تم حذف المهمة '{removed_task['task']}'.")
else:
print("رقم المهمة غير صالح.")
except ValueError:
print("يرجى إدخال رقم صالح.")
الخطوة 3: الحلقة الرئيسية
def main():
while True:
display_menu()
choice = input("اختر خيارًا (1-5): ")
if choice == "1":
add_task()
elif choice == "2":
view_tasks()
elif choice == "3":
mark_completed()
elif choice == "4":
delete_task()
elif choice == "5":
print("إنهاء التطبيق. وداعًا!")
break
else:
print("خيار غير صالح. حاول مرة أخرى.")
if __name__ == "__main__":
main()
الكود النهائي
# إنشاء قائمة فارغة لتخزين المهام
tasks = []
def display_menu():
print("\nقائمة المهام")
print("1. إضافة مهمة")
print("2. عرض المهام")
print("3. تحديد مهمة كمكتملة")
print("4. حذف مهمة")
print("5. إنهاء التطبيق")
def add_task():
task = input("أدخل المهمة: ")
tasks.append({"task": task, "completed": False})
print(f"تمت إضافة المهمة '{task}'.")
def view_tasks():
if not tasks:
print("لا توجد مهام في القائمة.")
return
for idx, task in enumerate(tasks, start=1):
status = "[x]" if task["completed"] else "[ ]"
print(f"{idx}. {status} {task['task']}")
def mark_completed():
view_tasks()
try:
task_num = int(input("أدخل رقم المهمة لتحديدها كمكتملة: "))
if 1 <= task_num <= len(tasks):
tasks[task_num - 1]["completed"] = True
print(f"تم تحديد المهمة {task_num} كمكتملة.")
else:
print("رقم المهمة غير صالح.")
except ValueError:
print("يرجى إدخال رقم صالح.")
def delete_task():
view_tasks()
try:
task_num = int(input("أدخل رقم المهمة لحذفها: "))
if 1 <= task_num <= len(tasks):
removed_task = tasks.pop(task_num - 1)
print(f"تم حذف المهمة '{removed_task['task']}'.")
else:
print("رقم المهمة غير صالح.")
except ValueError:
print("يرجى إدخال رقم صالح.")
def main():
while True:
display_menu()
choice = input("اختر خيارًا (1-5): ")
if choice == "1":
add_task()
elif choice == "2":
view_tasks()
elif choice == "3":
mark_completed()
elif choice == "4":
delete_task()
elif choice == "5":
print("إنهاء التطبيق. وداعًا!")
break
else:
print("خيار غير صالح. حاول مرة أخرى.")
if __name__ == "__main__":
main()
كيفية تشغيل السكربت خطوة بخطوة
- تحقق من تثبيت بايثون:
- افتح الطرفية أو موجه الأوامر.
- اكتب:
python --version
- إذا كان بايثون مثبتًا، ستظهر لك نسخته.
- افتح المجلد الذي يحتوي على السكربت:
- انتقل إلى المجلد الذي يحتوي على ملف
todo_list.py
باستخدام الطرفية. - مثال:
cd path/to/your/project/folder
- انتقل إلى المجلد الذي يحتوي على ملف
- تشغيل السكربت:
- اكتب الأمر التالي:
python todo_list.py
- اكتب الأمر التالي:
- التفاعل مع التطبيق:
- ستظهر قائمة الخيارات.
- أدخل الأرقام (1-5) لتنفيذ الخيارات المختلفة:
- 1: لإضافة مهمة.
- 2: لعرض قائمة المهام.
- 3: لتحديد مهمة كمكتملة.
- 4: لحذف مهمة.
- 5: لإنهاء التطبيق.
- اختبار جميع الخيارات:
- أضف عدة مهام.
- حدد بعضها كمكتملة.
- احذف بعض المهام.
- تأكد من أن كل خيار يعمل كما هو متوقع.
- إصلاح الأخطاء (إن وجدت):
- إذا واجهت خطأً أثناء التنفيذ، تحقق من الكود وأعد تشغيل السكربت.





نصائح إضافية للاختبار
- جرب إدخال بيانات غير صحيحة، مثل إدخال حروف بدلاً من أرقام، للتأكد من أن التطبيق يتعامل مع الأخطاء بشكل جيد.
- أضف عددًا كبيرًا من المهام لترى كيف يتم عرض القائمة.
الخطوات التالية
بمجرد بناء واختبار هذا الإصدار الأساسي، فكر في تحسينه:
- حفظ البيانات واسترجاعها: قم بإضافة ميزة لحفظ المهام في ملف (مثل ملف JSON أو نصي) وتحميلها عند بدء التطبيق.
- إضافة تفاصيل إضافية: قم بإضافة حقول أخرى مثل تاريخ الاستحقاق أو مستوى الأولوية لكل مهمة.
- ترتيب المهام: أضف ميزة لترتيب المهام حسب الأولوية أو تاريخ الاستحقاق.
- إضافة واجهة رسومية: جرب بناء واجهة رسومية باستخدام مكتبات مثل Tkinter أو PyQt لتحسين تجربة المستخدم.
- دعم لغات متعددة: اجعل التطبيق يدعم لغات متعددة ليتناسب مع جمهور أوسع.
الخاتمة
تهانينا! لقد قمت ببناء مشروعك الأول باستخدام Python. تطبيق قائمة المهام هذا هو مقدمة رائعة للعمل مع المفاهيم الأساسية لPython. مع استمرارك في التعلم، ستتمكن من التعامل مع مشاريع أكثر تعقيدًا وإثارة. استمر في استكشاف إمكانيات Python، وستفاجأ بما يمكنك تحقيقه. برمجة سعيدة!