تتمثل السمة الأساسية في أن العبارات الموجودة على المستوى الأعلى (top-level statements) تُنفَّذ عند استيراد الملف؛ لذا فإن شرط الحماية الرئيسي (main guard) يمنع حدوث تأثيرات جانبية غير مقصودة عندما يقوم ملف آخر باستيراد وحدتك البرمجية (module).
عادةً ما يتكون السكربت الأول من ثلاثة عناصر: تخزين القيم في متغيرات، وقراءة النص من المستخدم باستخدام الدالة input()، وطباعة النتائج باستخدام الدالة print(). ونظراً لأن الدالة input() تُعيد قيمة نصية (string)، فإن إجراء العمليات الحسابية يتطلب تحويل هذه القيمة باستخدام int() أو float() قبل حساب التعبير الرياضي.
تتميز الصيغة البرمجية بالبساطة والوضوح، كما أن الترتيب مهم لأن كل سطر يعتمد على قيم تم إنشاؤها في الأسطر السابقة.
name = input("Name: ")
age = int(input("Age: "))
next_year = age + 1
print(f"{name} will be {next_year} next year.")
أكمل كتابة سكربت بسيط يطلب من المستخدم إدخال الاسم والعمر، ثم يطبع ملخصاً منسقاً للبيانات.
تُعد Python لغة برمجة متعددة الأغراض تُستخدم في كتابة سكربتات الأتمتة، ومعالجة البيانات، وتطوير الواجهات الخلفية (Back-end) للويب، وإنشاء أدوات مساعدة صغيرة لربط الأنظمة ببعضها. في هذه الدورة، ستستخدم Python لكتابة برامج صغيرة تُنفَّذ من ملف، وتقرأ المدخلات، وتُنتج مخرجات.
تُنفِّذ Python الكود البرمجي عبر “مفسِّر” (Interpreter). عند تشغيل ملف ما، يقرأ المفسِّر الملف من الأعلى إلى الأسفل، وينفِّذ التعليمات البرمجية بالتسلسل، ويتوقف عند انتهاء الملف أو حدوث خطأ. يُعرَّف السكربت (Script) ببساطة على أنه ملف Python مخصص للتنفيذ لأداء مهمة محددة، وليس لاستيراده كمكتبة برمجية في كود آخر.
قم بتثبيت Python 3.12 باستخدام المثبِّت الرسمي الخاص بنظام التشغيل لديك، ثم تأكد من توفرها في واجهة سطر الأوامر (Terminal). عملية التحقق بسيطة لأنها تضمن سلامة المسار بالكامل؛ أي أن الصدفة (Shell) يمكنها العثور على Python، وأن Python قادرة على الإبلاغ عن إصدارها.
python3 --version
إذا فشل هذا الأمر على نظامك، جرب التالي:
python --version
اختر محرراً للنصوص يدعم فتح المجلدات، وتحرير النصوص العادية (Plain text)، وتشغيل كود Python. الشرط الأساسي هو أن يقوم المحرر بحفظ الملفات بالامتداد .py وألا يضيف أي تنسيقات قد تُغيِّر الكود البرمجي.
تُعد البيئة الافتراضية (Virtual Environment) مجلداً معزولاً يحتوي على مفسِّر Python خاص به وحزم (Packages) مثبتة داخله؛ مما يمنع تداخل الاعتماديات (Dependencies) بين المشاريع المختلفة. قم بإنشاء بيئة افتراضية لكل مشروع، وفعِّلها، ثم ثبِّت الحزم باستخدام pip، وهو أداة تثبيت الحزم في Python.
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
قاعدة عامة إذا لاحظت أن الحزم تُثبَّت على مستوى النظام بالكامل (Global)، فقم بإنشاء بيئة افتراضية ونفِّذ الأمر
python -m pip ...بداخلها.
يُعتبر ملف Python بمثابة وحدة برمجية (Module). عند تشغيل الأمر python path/to/file.py، تضبط Python اسم الوحدة ليكون __main__، ثم تنفِّذ الكود الموجود في المستوى الأعلى للملف. أما عند استيراد الملف نفسه من وحدة أخرى، فإن Python تنفِّذه مرة واحدة فقط عند الاستيراد وتضبط اسمه ليكون اسم الملف نفسه؛ وهذا يغيّر الطريقة التي ينبغي عليك اتباعها لهيكلة الكود القابل للتنفيذ.
يتيح المتغير __name__ للوحدة البرمجية اكتشاف ما إذا كانت تُنفَّذ مباشرةً أم يتم استيرادها. ويُعد حارس التنفيذ الرئيسي (Main Guard) النمط البرمجي الذي يمنع تنفيذ الكود المخصص للتشغيل المباشر فقط أثناء عملية الاستيراد.
if __name__ == "__main__":
main()
جرب تشغيل وحدة برمجية (module) صغيرة وقارن بين المخرجات في حال وجود شرط __name__ == "__main__" وفي حال عدم وجوده.