ما المقصود بـ Python؟
Python هي لغة برمجة تُستخدم على نطاق واسع في تطبيقات الشبكة وتطوير البرامج وعلم البيانات والتعلم الآلي (ML). يستخدم المطورون Python لأنها تتسم بالكفاءة وسهولة التعلم ويمكن تشغيلها على عديد من المنصات المختلفة. إن برنامج Python متاح للتحميل مجانًا ويتكامل جيدًا مع جميع أنواع الأنظمة ويزيد من سرعة التطوير.
ما فوائد Python؟
تتضمن فوائد Python الآتي:
- يمكن للمطورين قراءة برنامج Python وفهمه بسهولة إذ يتضمن بناء بسيط للجملة يشبه اللغة الإنجليزية.
- تجعل Python المطورين أكثر إنتاجية إذ يستطيعون كتابة برنامج Python باستخدام سطور رموز أقل مقارنةً بكثير من اللغات الأخرى.
- تتمتع Python بمكتبة قياسية كبيرة تتضمن تعليمات برمجية قابلة لإعادة الاستخدام لأي مهمة تقريبًا. ونتيجةً لذلك، لا يضطر المطورون إلى كتابة تعليمة برمجية من البداية.
- يمكن للمطورين استخدام Python بسهولة مع لغات البرمجة الشائعة الأخرى مثل Java وC وC++.
- يضم Python النشط ملايين المطورين الداعمين حول العالم. إذا واجهت مشكلة، فيمكنك الحصول على دعم سريع من المجتمع.
- الكثير من الموارد المفيدة متاحة على الإنترنت إذا كنت تريد تعلم Python. على سبيل المثال، يمكنك إيجاد مقاطع فيديو وبرامج تعليمية ووثائق وأدلة المطورين بسهولة.
- تعد Python قابلة للنقل عبر أنظمة تشغيل الحاسوب المختلفة، مثل Windows وmacOS وLinux وUnix.
كيفية استخدام Python؟
للغة Python عديد من حالات الاستخدام في تطوير التطبيقات، بما في ذلك الأمثلة الآتية:
تطوير الويب من جانب الخادم
يتضمن تطوير الويب من جانب الخادم وظائف برنامج الخلفية المعقدة التي تؤديها مواقع الويب لعرض المعلومات للمستخدم. على سبيل المثال، يتعين على مواقع الويب التفاعل مع قواعد البيانات والتعامل مع مواقع الويب الأخرى وحماية البيانات عند إرسالها عبر الشبكة.
تعد Python مفيدة لكتابة الرموز من جانب الخادم حيث توفر الكثير من المكتبات التي تتضمن رموزًا مكتوبة سابقًا لوظائف برنامج الخلفية المعقدة. يستخدم المطورون كذلك مجموعة واسعة من الأطر العامة للغة Python التي توفر جميع الأدوات اللازمة لإنشاء تطبيقات الشبكة بشكل أسرع وأسهل. على سبيل المثال، يمكن للمطورين إنشاء بنية تطبيق الشبكة في ثوانٍ لعدم حاجتهم إلى كتابتها من البداية. يمكنهم عقب ذلك اختبارها باستخدام أدوات اختبار الإطار العام، من دون الاعتماد على أدوات اختبار خارجية.
الأتمتة باستخدام برامج Python النصية
لغة البرمجة النصية هي لغة برمجة تعمل على أتمتة مهام عادةً ما يؤديها البشر. يستخدم المبرمجون برامج Python النصية بشكل واسع لأتمتة الكثير من المهام اليومية مثل الآتي:
- إعادة تسمية عدد كبير من الملفات في الوقت ذاته
- تحويل ملف إلى نوع ملف آخر
- إزالة الكلمات المكررة في ملف نصي
- إجراء العمليات الحسابية الأساسية
- إرسال رسائل البريد الإلكتروني
- تحميل المحتوى
- أداء تحليل السجلات الأساسية
- البحث عن أخطاء في ملفات متعددة
علم البيانات والتعلم الآلي
علم البيانات هو استخراج المعرفة القيّمة من البيانات، بينما تعلّم الآلة (ML) يُعلِّم الحواسيب التعلم التلقائي من البيانات وإنشاء تنبؤات دقيقة. يستخدم علماء البيانات Python لمهام علم البيانات، مثل المهام الآتية:
- إصلاح البيانات غير الصحيحة وإزالتها، بما يعرف بتنظيف البيانات
- استخراج ميزات مختلفة من البيانات واختيارها
- Data labeling، وهي إضافة أسماء ذات معنى إلى البيانات
- البحث عن إحصائيات مختلفة من البيانات
- تصور البيانات باستخدام المخططات والرسوم البيانية، مثل المخططات الخطية والرسوم الشريطية والمدرجات التكرارية والمخططات الدائرية
تطوير البرامج
غالبًا ما يستخدم مطورو البرامج Python لأداء مهام التطوير وتطبيقات البرامج المختلفة مثل الآتي:
- تتبع الأخطاء في رموز البرنامج
- إنشاء البرنامج تلقائيًا
- معالجة إدارة مشروعات البرامج
- تطوير نماذج البرامج الأولية
- تطوير تطبيقات سطح المكتب باستخدام مكتبات واجهة المستخدم الرسومية (GUI)
- تطوير ألعاب نصية بسيطة إلى ألعاب فيديو أكثر تعقيدًا
أتمتة اختبار البرامج
اختبار البرامج هو عملية التحقق مما إذا كانت النتائج الواقعية من البرنامج تطابق النتائج المتوقعة لضمان خلو البرنامج من الأخطاء.
- يستخدم المطورون أطرًا عامة لاختبار وحدة Python، مثل Unittest وRobot وPyUnit، لاختبار الوظائف التي يكتبونها.
- يستخدم مختبرو البرامج Python لكتابة حالات اختبار لمختلف سيناريوهات الاختبار. على سبيل المثال، يستخدمونها لاختبار واجهة المستخدم لتطبيق الشبكة ومكونات البرامج العديدة والميزات الجديدة.
يمكن للمطورين استخدام عدة أدوات لتشغيل البرامج النصية للاختبار تلقائيًا. تُعرف هذه الأدوات بأدوات التكامل المستمر/التعيين المستمر (CI/CD). يستخدم مختبرو البرامج ومطوروها أدوات CI/CD مثل Travis CI وJenkins لأتمتة الاختبارات. تعمل أدوات CI/CD تلقائيًا على تشغيل البرامج النصية لاختبار Python وتفيد بنتائج الاختبار كلما أطلق المطورون تغييرات رموز جديدة.
ما تاريخ Python؟
قام جيدو ڤان روسم، وهو مبرمج حاسوب في هولندا، بإنشاء لغة Python. وقد بدأها عام 1989 بمعهد Centrum Wiskunde & Informatica (CWI)، في البداية كمشروع هواية للبقاء مشغولاً خلال فترة عيد الميلاد. واستوحي اسم اللغة من برنامج BBC التلفزيوني Monty Python’s Flying Circus حيث كان جيدو ڤان روسم من أشد المعجبين بالبرنامج.
تاريخ إصدارات Python
- نشر جيدو ڤان روسم أول إصدار لرموز Python (إصدار 0.9.0) في عام 1991. وقد تضمن بالفعل ميزات جيدة مثل بعض أنواع البيانات والوظائف لمعالجة الأخطاء.
- أصدرت لغة Python 1.0 في 1994 بوظائف جديدة لمعالجة قائمة من البيانات بسهولة، مثل الخريطة والفلترة والتقليل.
- أصدرت Python 2.0 في 16 أكتوبر/تشرين الأول 2000، بميزات جديدة مفيدة للمبرمجين، مثل دعم أحرف Unicode وطريقة أقصر للتكرار في أي قائمة.
- في 3 ديسمبر/كانون الأول 2008، أصدرت Python 3.0. حيث تضمنت ميزات مثل وظيفة الطباعة والمزيد من الدعم لتقسيم الأرقام ومعالجة الأخطاء.
ما ميزات Python؟
إليك ميزات لغة برمجة Python التي تجعلها مميزة:
لغة مفسرة
تعد Python لغة مفسرة، ما يعني أنها تدير الرموز سطرًا بسطر. إذا كانت ثمة أخطاء في رموز البرنامج، فسيتوقف عن العمل. ومن ثم، يمكن للمبرمجين إيجاد الأخطاء في الرموز بسرعة.
لغة سهلة الاستخدام
تستخدم Python كلمات تشبه الإنجليزية. على عكس لغات البرمجة الأخرى، لا تستخدم Python الأقواس المتعرجة. بدلاً من ذلك، تستخدم المسافة البادئة.
لغة مكتوبة ديناميكيًا
لا يتعين على المبرمجين الإعلان عن أنواع المتغيرات عند كتابة الرموز حيث تحددها Python في مدة العرض. بفضل هذا، يمكنك كتابة برامج Python أسرع.
لغة عالية المستوى
تعد Python أقرب للغات البشر من بعض لغات البرمجة الأخرى. ومن ثم، لا يتعين على المبرمجين القلق إزاء وظائفها الأساسية مثل الهندسة وإدارة الذاكرة.
لغة موجَّهة بالكائنات
كل شيء يُعد كائنًا بالنسبة إلى Python، لكنها تدعم كذلك أنواع أخرى من البرمجة مثل البرمجة المنظمة والوظيفية.
ما المقصود بمكتبات Python؟
المكتبة هي مجموعة من الرموز الشائعة التي يمكن للمطورين تضمينها في برامج Python الخاصة بهم لتجنب كتابة الرموز من البداية. بشكل افتراضي، تتوفر Python مع المكتبة القياسية التي تتضمن كثيرًا من الوظائف القابلة لإعادة الاستخدام. بالإضافة إلى ذلك، تتوفر أكثر من 137000 مكتبة Python لمختلف التطبيقات، بما في ذلك تطوير الويب وعلم البيانات والتعلم الآلي (ML).
ما أشهر مكتبات Python؟
Matplotlib
يستخدم المطورون مكتبة Matplotlib لرسم بيانات على شكل رسومات ثنائية وثلاثية الأبعاد (2D و3D) عالية الجودة. وغالبًا ما تستخدم في التطبيقات العلمية. باستخدام Matplotlib، يمكنك تصوير البيانات عن طريق عرضها في مخططات مختلفة مثل المخططات الشريطية والمخططات الخطية. يمكنك كذلك رسم عدة مخططات في الوقت ذاته، وتكون الرسومات قابلة للنقل عبر جميع المنصات.
Pandas
توفر مكتبة Pandas هياكل بيانات مرنة ومحسنة يمكنك استخدامها لمعالجة بيانات التسلسل الزمني والبيانات المنظمة، مثل الجداول والصفائف. على سبيل المثال، يمكنك استخدام Pandas لقراءة البيانات وكتابتها ودمجها وفلترتها وجمعها. كما يستخدمها الكثير من الأشخاص في علم البيانات وتحليل البيانات ومهام التعلم الآلي (ML).
NumPy
تعد NumPy مكتبة رائجة يستخدمها المطورون لإنشاء الصفائف وإدارتها بسهولة ومعالجة الأشكال المنطقية وتنفيذ عمليات الجبر الخطي. تدعم NumPy التكامل مع عديد من اللغات، مثل C وC++.
Requests
توفر مكتبة Requests وظائف مفيدة مطلوبة لتطوير الويب. يمكنك استخدامها لإرسال طلبات HTTP وإضافة رؤوس ومعلمات URL وإضافة بيانات وتنفيذ الكثير من المهام الأخرى عند الاتصال بتطبيقات الشبكة.
OpenCV-Python
تعد OpenCV-Python مكتبة يستخدمها المطورون لمعالجة الصور لتطبيقات الرؤية الحاسوبية. توفر الكثير من الوظائف لمهام معالجة الصور، مثل قراءة الصور وكتابتها في الوقت ذاته وإنشاء بيئة ثلاثية الأبعاد من بيئة ثنائية الأبعاد والتقاط الصور من الفيديو وتحليلها.
Keras
تعد Keras مكتبة الشبكات العصبونية العميقة الخاصة بـ Python مع دعم ممتاز لمعالجة البيانات والتصوُّر وغير ذلك الكثير. تدعم Keras الكثير من الشبكات العصبونية. وتمتاز بهيكل نمطي يوفر المرونة عند كتابة التطبيقات الابتكارية.
ما المقصود بأطر Python العامة؟
إطار Python العام هو مجموعة من الحزم والوحدات. تعرف الوحدة بوصفها مجموعة من الرموز المرتبطة، بينما تعرف الحزمة بوصفها مجموعة من الوحدات. يمكن للمطورين استخدام أطر Python العامة لإنشاء تطبيقات Python بسرعة أكبر حيث لا داعي للقلق بشأن التفاصيل الصغيرة، مثل كيفية إجراء الاتصالات في تطبيق الشبكة أو كيفية جعل Python البرنامج أسرع. ثمة نوعان من الأطر العامة للغة Python:
- الإطار العام الشامل يتضمن جميع الأشياء المطلوبة تقريبًا لإنشاء تطبيق كبير.
- الإطار العام الصغير هو إطار عام أساسي يوفر الحد الأدنى من الوظائف لإنشاء تطبيقات Python بسيطة. يوفر كذلك ملحقات إذا احتاجت التطبيقات إلى وظائف معقدة أكثر.
ما أشهر أطر Python العامة؟
يمكن للمطورين استخدام عديد من أطر Python العامة لجعل تطويرهم أكثر كفاءة، بما في ذلك الأطر العامة الآتية:
Django
Django هو أكثر أطر شبكة Python العامة الشاملة استخدامًا لتطوير تطبيقات الشبكة واسعة النطاق. يوفر ميزات مفيدة عديدة، بما في ذلك خادم الويب للاختبار والتطوير ومحرك نموذج لإنشاء الواجهة الأمامية للموقع الإلكتروني وآليات الأمان المختلفة.
Flask
Flask هو إطار عام صغير لتطوير تطبيقات الويب الصغيرة. تتضمن ميزاته دعمًا قويًا للمجتمع ووثائق مكتوبة جيدًا ومحرك نموذج واختبار الوحدات وخادم ويب مدمجًا. يوفر كذلك ملحقات لدعم التصديق، وطبقات رسم خرائط قواعد البيانات، وأمان الويب.
TurboGears
TurboGears هو إطار عام مصمم لإنشاء تطبيقات الويب بشكل أسرع وأسهل. إليك بعض ميزاته الشائعة:
- هيكل جدول قاعدة بيانات محدد
- أدوات لإنشاء المشروعات وإدارتها
- محرك نموذج لإنشاء قواعد البيانات
- محرك نموذج لإنشاء الواجهة الأمامية
- آليات لمعالجة أمن الويب
Apache MXNet
Apache MXNet هو إطار عام للتعلم العميق يتسم بالسرعة والمرونة والقابلية للتوسع حيث يستخدمه المطورون في إنشاء نماذج بحثية أولية وتطبيقات التعلم العميق. هو يدعم لغات برمجة عديدة، بما في ذلك Java وC++ وR وPerl. كما يوفر مجموعة ثرية بالأدوات والمكتبات لدعم التطوير. على سبيل المثال، يمكنك إيجاد كتاب تعلّم الآلة (ML) التفاعلي وأدوات الرؤية الحاسوبية ونماذج التعلم العميق لمعالجة اللغة الطبيعية (NLP)، التي تعالج اللغة الطبيعية مثل النص والكلام.
PyTorch
PyTorch هو إطار عام لتعلّم الآلة أُنشئ استنادًا إلى مكتبة Torch، التي تعد مكتبة تعلّم آلة مفتوحة المصدر. ويستخدمه المطورون لتطبيقات مثل NLP وتقنية الروبوتات والرؤية الحاسوبية، للعثور على معلومات مفيدة في الصور ومقاطع الفيديو. يستخدمونه كذلك في تشغيل تلك التطبيقات في وحدات المعالجة المركزية (CPUs) ووحدات معالجة الرسوميات (GPUs).
ما المقصود ببيئات التطوير المتكاملة (IDEs) للغة Python؟
بيئة التطوير المتكاملة (IDE) هي برنامج يوفر للمطورين الأدوات التي يحتاجون إليها لكتابة الرموز وتحريرها واختبارها وتصحيح أخطائها في مكان واحد.
ما أشهر بيئات التطوير المتكاملة (IDEs) للغة Python؟
PyCharm
قامت JetBrains، وهي شركة في جمهورية التشيك تطور أدوات برمجية، بإنشاء PyCharm. ولديها إصدار مجتمعي مجاني مناسب لتطبيقات Python الصغيرة وإصدار احترافي مدفوع مناسب لتطبيقات Python واسعة النطاق، مع مجموعة الميزات الكاملة الآتية:
- إكمال الرموز وفحصها تلقائيًا
- معالجة الأخطاء وإصلاحها بسرعة
- تنظيف الرموز من دون تغيير الوظيفة
- دعم الأطر العامة لتطبيق الشبكة مثل Django وFlask
- دعم لغات البرمجة الأخرى، مثل JavaScript وCoffeeScript وTypeScript وAngularJS وNode
- مكتبات وأدوات علمية مثل Matplotlib وNumPy
- القدرة على تشغيل التطبيقات واختبراها ونشرها وتصحيح أخطائها في آلات افتراضية عن بُعد
- مصحح أخطاء لإيجاد الأخطاء في الرموز ومحلل لتحديد مشكلات الأداء في الرموز ومنفذ اختبارات لأداء اختبارات الوحدات
- توفير دعم لقواعد البيانات
بيئة التطوير والتعليم المتكاملة (IDLE)
- العمل عبر العديد من أنظمة التشغيل مثل Windows وUnix وmacOS
- توفير نافذة shell لتنفيذ الأوامر وعرض المخرجات
- توفير محرر نصوص متعدد النوافذ يسلط الضوء على بناء جمل الرموز وإكمال الرموز تلقائيًا
- لديها مصحح الأخطاء الخاص بها
Spyder
Spyder هي بيئة تطوير متكاملة (IDE) مفتوحة المصدر يستخدمها الكثير من العلماء ومحللي البيانات. توفر تجربة تطوير شاملة مع ميزات لتحليل البيانات المتقدم وتصور البيانات وتصحيح أخطائها. تشمل كذلك الميزات الآتية:
- محرر رموز ثري يدعم لغات متعددة
- وحدة تحكم IPython تفاعلية
- مصحح أخطاء أساسي
- مكتبات علمية مثل Matplotlib وSciPy وNumPy
- القدرة على استكشاف المتغيرات في الرموز
- القدرة على عرض الوثائق في الوقت الفعلي
Atom
Atom هو محرر مجاني طورته GitHub حيث يدعم كتابة التعليمات البرمجية بالعديد من لغات البرمجة، من بينها لغة Python. باستخدام Atom، يمكن للمطورين العمل مباشرةً باستخدام GitHub، الموقع الإلكتروني الذي يمكنك حفظ رموزك عليه مركزيًا. يوفر Atom الميزات الآتية:
- القدرة على استخدامه مع العديد من أنظمة التشغيل
- تثبيت الحزم الجديدة أو إنشاؤها بسهولة
- إكمال الرموز تلقائيًا بشكل أسرع
- القدرة على البحث في الملفات والمشروعات
- سهولة التخصيص للواجهة
ما المقصود بمجموعات تطوير البرمجيات (SDKs) للغة Python؟
مجموعة تطوير البرمجيات (SDK) هي مجموعة من أدوات برمجية يستخدمها المطورون لإنشاء تطبيقات البرامج بلغة محددة. معظم مجموعات SDK خاصة بمنصات أجهزة وأنظمة تشغيل مختلفة. تتضمن مجموعات SDK للغة Python أدوات عديدة، مثل المكتبات وعينات من الرموز وأدلة المطورين التي يجدها المطورون مفيدة عند كتابة التطبيقات.
ما المقصود بـ AWS PyCharm؟
أدوات AWS لـ PyCharm هي المكون الإضافي لبيئة التطوير المتكاملة (IDE) لـ PyCharm التي تجعل من السهل إنشاء تطبيقات Python وتصحيح أخطائها ونشرها على AWS. باستخدام أدوات AWS لـ PyCharm، يمكن للمطورين البدء بسهولة بتطوير Python. حيث توفر عدة ميزات مفيدة للمطورين، بما في ذلك أدلة البدء وتصحيح الأخطاء بخطوة واحدة وتعيين IDE.
ما المقصود بـ Boto3 في Python؟
Boto3 هي مجموعة تطوير برمجيات AWS للغة Python. يمكنك استخدامها في إنشاء خدمات AWS وتكوينها وإدارتها مثل Amazon Elastic Compute Cloud (EC2) وAmazon Simple Storage Service (S3) وAmazon DynamoDB. كما توفر Boto3 نوعين من واجهات برمجة التطبيقات: واجهات برمجة التطبيقات "منخفضة المستوى" وواجهات برمجة التطبيقات "موارد" للمطورين.