المهارات الرقمية12 فصل أول

الثاني عشر خطة جديدة

icon

 

الوحدة ( Module ) والحُُزََم (Packages)

طوال دراستنا خلال هذين العامين ونحن نتعامل مع برامج بسيطة عبارة عن عدة أسطر نكتبها في ملف واحد، ولكن المشاريع البرمجية غالباً ما تكون أكبر بكثير، بل هناك مشاريع برمجية مكونة من آلاف من الأسطر وهناك مشاريع أكبر ، وهنا يصبح من الصعب أن يكون كود المشروع البرمجي في ملف واحد،بل بل يتم تقسيم  البرنامج إلى عدد من الملفات المرتبطة مع بعضها البعض، ولذلك تدعم لغات البرمجة امكانية استدعاء الكود من ملف في ملف آخر، فمثلاً يمكننا كتابة دالة تؤدي دور معين(عمليات حسابية،التاريخ والوقت)، واستخدامها عدة مرات في العديد من المواضع في ملفات مختلفة.

ويطلق على الملف برمجي الذي  يمكن استدعاؤه داخل المشروع البرمجي مصطلح الوحدة (Module)

وعندما يكون هناك عدد من الوحدات (modules) مرتبطة مع بعضها تؤدي دورًا معينًا أو مهمة معينة يطلق عليها مصطلح الحزمة (Package)

وعليه يمكننا تعريف كل من الوحدة والحزمة  في لغة بايثون على النحو التالي:

الوحدة (Module) : هو ملف يحتوي على مقاطع برمجية (code) مكتوبة مسبقًا يمكن إستدعاؤها وإعادة اسيتخدامها في برامج أخرى.

ومن أشهر الأمثلة على الوحدات : وحدة (math) و وحدة (time)

الحُزم (Package):هي طريقة لتنظيم الوحدات المرتبطة معًا من خلال تسلسل هرمي،أي انها تمثل الدليل لمجموعة من الوحدات المتعددة.

 Init.py  : هو ملف خاص في لغة بايثون يُستخدم لتعريف المجلد كـ "حزمة

 

أنواع الحٌزم:

1.الحٌزم الجاهزةالمدمجة  ( built-in packages)

هي مجموعة من الحزم البرمجية التي تسهل عملية التعامل مع البيانات اﻷساسية وتمنح المبرمج السرعة في إنجاز اﻷمور التي تتخصص فيها اللغة، حيث تختلف هذه الحزم من لغة ﻷخرى اختلافاً كبيراً لكن هناك بعض الحزم اﻷساسية التي غالباً ما نجدها مُدمجة في أي لغة برمجة.

ومن أشهر الحزم التي توفرها لغة البرمجة بايثون (math)و(time).

 

2.حُزم خارجية (Third-party Packages)

 هي مكتبات برمجية جاهزة أو مجموعة من الملفات والوظائف التي يمكن للمطورين  استخدامها لتسهيل كتابة البرامج.حيث تمثل  وحدات برمجية جاهزة تم تطويرها ونشرها  من قبل أشخاص أو مجموعات خارجية عن المشروع.

 

3.حُزم مخصصة (User-Defined Packages)

وهي تلك الحُزم التي يُطوِّرها المُستخدِم لتُلائِم مُتطلَّبات خاصة في برنامجه.

 

فوائد استخدام الحزم:

 

 

 

 

 

 

 

 

 

 

 

 

 

إنشاء الوحدات : (Modules Construction)

إنّ فكرة البرمجة باستخدام الوحدات تسمح للمبرمج بتجميع أجزاء من البرنامج في وحدات، ويُعرف هذا الأسلوب من الوحدات في لغات البرمجة باسم االإجراء procedure  أو الدالة  function.

ولإنشاء وحدة (Module) من خلال لغة البرمجة بايثون نقوم بالخطوات التالية:

1.إنشاء ملف Python: وحفظه باسم بحيث يكون إمتداده (py .)

2. إضافة محتوى للوحدة : أي نقوم بإضافة الدوال التي نريد استخدامها داخل البرنامح

3.استدعاء الوحدة في البرنامج نفسه أو في برامج أخرى من خلال الأمر  (import.)

 

مثال:

ننشأ ملف يحمل الإسم my_module.py

نقوم بتعريف دالة تحمل اسم numbers

كما يظهر في المقطع البرمج التالي

 

 

 

 

 

ولغايات استخدام الوحدة في برنامج آخر اسمه (main.py

فإننا نقوم باستيراد الوحدة التي تحمل اسم (my_module)

ونستخدمها بالشكل الذي نريد كما يظهر في الأوامر التالية:

 

 

 

 

 

مثال2:

والآن، لنقم  بإنشاء وحدة برمجية لحساب مساحة مستطيل ثم نقوم بإستدعائها .

الحل:

1.نفتح محرر بايثون ثم نكتب المقطع البرمجي

الذي يقوم بتعريف وحدة(Module) باسم (area)

والتي وظيفتها حساب مساحة مستطيل.

 

 

 

 

2. أحفظ الملف باسم (Rarea ) في مجلد خاص

كما يظهر في الشكل التالي:

 

 

 

 

 

 

 

 

3.والآن،نفتح محرر بايثون،ونفتح برنامجاً جديدًا ونكتب الكود التالي:

 

 

 

 

 

4. أحفظ الملف باسم (rea_main.py) في نفس المجلد الذي تم حفظ الوحدة (area) السابقة في داخله.

5.لنعمل على تنفيذ الملف من خلال الأمر (Run)

سوف تظهر معنا النتيجة التالية:

 

 

تذكر:

 

 

 

 

 

 

 

 

 

 

تثبيت الحُُزََم الخارجية ومكتبة (NumPy)

لغايات تثبيت الحُُزََم الخارجية في لغة البرمجة بايثون، يمكن من خلال استخدام مدير الحُُزََم الافتراضي pip) ) وذلك من خلال كتابة الأمر التالي:

 (pip install package_name)   

 

حيث يتم الامر من خلال الخطوات التالية:

1.أفتح شاشة (command prompt) من زر البدء الموجود على شريط المهام

2.أكتب الأمر (pip install numpy)

كما يظهر في الشكل التالي:

 

 

 

 

 

 

نلاحظ انه ظهرت لنا رسالة تُؤكد عملية تثبيت المكتبة.

 

استخدام المكتبات

 

حتى نستطيع إستخدام المكتبات في بايثون، لا بدّ من إستردادها أولًا، وتتم هذه العملية من خلال إستخدام الأمر (import) متبوعًا بإسم المكتبة .

مثال

أكتب برنامجًا يقوم بإستيراد المكتبة (numpy) وتعريف متغير يحمل الأسم (five_elements)  من نوع مصفوفة والذي يحتوي على خمسة عناصر، ومن ثم طباعة هذا المتغير.

الحل:

 

وبعد تنفيذ البرنامج سوف تظهر لنا النتيجة التالية:

 

يمكن الإستعاضة عن كتابة الأسماء الحقيقية للمكتبات في بايثون

من خلال كتابة الاسم المستعار(Alias)

كما يظهر في المثال التالي:

 

 

حيث تم الاستعاضة عن اسم المكتبة الحقيقي (numpy) بإسم مستعار هو (np).

 

إنشاء الحُُزْْم  (User-Defined Packages)

 كما سبق وتعلمنا، فإنّ عملية  إنشاء الحُُزََم باستخدام لغة البرمجة بايثونتعتبر واحدًًا من الجوانب المُُهِِمََّة في تطوير البرمجيات الحديثة؛ إذ إنَّ إستخدام الحزم يوفر المزايا التالية:

  • يتيح لمُُطِوّرِي البرامج تنظيم المقاطع البرمجية )الأكواد( بطريقة منهجية
  • يُُمكن  إعادة الاستخدام.لهذه الحزم في أكثر من مكان
  • يسمح بتقسيم المشروعات الكبيرة إلى أجزاء صغيرةومُُنفصِِلة؛
  • يُُسهلِ عملية  إدارة الكود
  • يمكن  مُُطوِّري البرامج من مشاركة الآخرين في برامجهم؛ إمّّا بتثبيتها محليًًّا، وإمّّا بنشرها في مستودعات، مثل مستودع بايثون الرسمي(PyPI).

 

والآن لنقم بإنشاء حُُزْْمة  وحدات:

الأولى :  تكون وظيفتها اختيار إذا كان العدد موجبًا أو سالبًا ثم طباعة النتيجة.

الثانية:  تقوم باختبار إذا كان العدد زوجيًا أو فرديًا، ثم طباعة النتيجة.

 

وذلك من خلال تنفيذ الخطوات الآتية:

1.إنشاء ملف بايثون فارغ، ثم حفظه باسم (py __ init__.  )  في مُجلدَّ الحُزْمة، وليكن اسم المُجلدَّ  (12Package_G (.

 أتذكَّر أنَّه يجب الانتباه إلى حالة الأحرف؛ لأنَّ لغة البرمجة بايثون حسّاسة تجاه حالة الأحرف.

 

2. إنشاء ملف بايثون جديد، ثمَّ كتابة الدالَّة الآتية فيه:

 

 

 

 

 

3. حفظ الملف في مُجلَّد الحُزْمة باسم (  even_number.py )  أُلاحِظ أنَّ ( even_number  )  يُعَدُّ وحدة نمطية  module

 

4. إنشاء ملف بايثون آخر، ثمَّ كتابة الدالَّة الآتية فيه:

 

 

 

 

 

 

 

 

5.حفظ الملف في مُجلدَّ الحُزْمة   ( positive_negative.py )

 

6. والآن نقم إنشاء ملف بايثون جديد باسم  (main)  لغايات إستدعاء  الوحدات التي سبق و أنشأناها من خلال كتابة المقطع البرمجي الآتي داخل الملف (main):

 

 

 

 

 

 

 

 

7. حفظ الملف خارج ملف الحُزْمة، وفي مكان حفظ المُجلدَّ نفسه. فمثلًًا، إذا حفظْتُ الحُزْمةعلى سطح المكتب، فإنَّني أحفظ هذا الملف أيضًا على سطح المكتب.

8.ولغايات معرفة النتيجة، نقوم بتنفيذ البرنامج (main)، والذي سوف يظهر لنا النتائج التالية بعد إدخال الأرقام التالية:  ( 211 ، -45، -24  ):

 

 

 

 

 

 

Jo Academy Logo