دورة Python للمبتدئين

7 : البرمجة بلغة بايثون – الوحدات Modules

Python3.8

السلام عليكم و رحمة الله تعالى و بركاته

في هذا الدرس سنتعرف على ما يُسَمَّى بالوحدات أو modules في بايثون.

تعريف الوحدة module :

إن لغات البرمجة، بايثون على سبيل المثال، تحتوي على الكثير من الدوال و الشفرات التي تسمح لنا بتنظيم و جعل برنامجنا أكثر جمالية و فعالية. و من أجل تنظيم هذه “المكتبة” المليئة بشفرات و دوال… مختلفة، كان لا بد من تجميع الدوال التي تقوم بدور معين تحت ملف واحد.

إذا، فالوحدات هي ملفات تجمع شفرات برمجية و دوال معينة. إذا رغبنا في استعمال دالة مُعرفة مسبقا في بايثون، ما علينا سوى أن نطلبها من الوحدة الخاصة بها.

مثال:

إذا أردنا أن نحسب الجذر المربع الخاص بعدد ما، فإننا سنحتاج إلى دالة معينة تقوم بهذا الأمر. و هذه الدالة هي sqrt() التي توجد داخل وحدة math.

إذا، فالدوال الخاصة بمختلف العمليات و المفاهيم الرياضية مجموعة داخل وحدة math.

كيف نستعمل دالة ما ضمن وحدة معينة؟

لنأخذ المثال السابق : حساب الجذر المربع الخاص بالعدد 16 مثلا.

هناك طرق عدة من أجل طلب وحدة ما، و بطلب أعني استعمالها. فعندما نفتح المترجم الخاص ببايثون، أو نبني شفرة ما بلغة بايثون في محرر ما، فالوحدات لا تكون مفتوحة، أي لا نستدعيها من أجل استعمالها، و لهذا فلا بد من كتابة شفرة معينة خاصة باستدعاء الوحدة المراد استخدامها.

طريقة import

قبل استعمال الدالة الخاصة بحساب الجذر المربع، لا بد أن نفتح الوحدة التي تحتوي عليها، و هي وحدة math، من خلال الكتابة التالية:

import math

import تعني استيراد، و math هو اسم الوحدة الخاصة بالدوال الرياضية.

إذا، ها نحن قد استدعينا و فتحنا الوحدة، و الآن ما علينا سوى استعمال الدالة:

#استدعينا الوحدة الخاصة بالدوال الرياضية
import math
#ننشئ المتغير الذي نريد حساب جذره المربع
number = 16
#نحسب الجذر المربع
square_root = math.sqrt(number)
#نظهر النتيجة للمستخدم
print('The square root of {} is {}.'.format(number,square_root))

لاستعمال الدالة sqrt()، لا بد من كتابة اسم الوحدة قبلها و ربطهما بنقطة: ()math.sqrt

مثال آخر:

حساب القيمة المطلقة لعدد ما، القيمة المطلقة هي القيمة الموجبة للعدد: إذا كان العدد هو مثلا 12- ، قيمته المطلقة هي 12، أما إذا كان العدد هو 3، قيمته المطلقة تبقى 3 لأنه موجب في الأصل.

الدالة التي تقوم بهذا العمل تسمى ()fabs.

#استدعينا الوحدة الخاصة بالدوال الرياضية
import math
#ننشئ المتغير الذي نريد حساب قيمته المطلقة
number = -187
#نحسب القيمة المطلقة
absolute_value = math.fabs(number)
#نظهر النتيجة للمستخدم
print('The absolute value of {} is {}.'.format(number,absolute_value))

النتيجة تظهر كالتالي:

و لكن، كيف لنا أن نعرف أسماء و أدوار الدوال التي توجد داخل الوحدة math مثلا؟

من أجل التعرف على مختلف الدوال التي تتواجد بوحدة معينة، يمكننا أن نكتب ببساطة كلمة help و بين القوسين و المزدوجتين نكتب اسم الوحدة:

help("math")

تظهر النتيجة كالتالي:

هذه النافذة عرض جميع الدوال و دور كل واحدة منها.

الطريقة الثانية: from … import

في هذه الطريقة، نحدد الدوال المراد استعمالها من الوحدة. فعوض استدعاء الوحدة كاملة، يمكننا أن نستدعي الدالة التي نحتاج إليها فقط.

مثال:

#استدعينا الوحدة الخاصة بالدوال الرياضية
from math import fabs
#ننشئ المتغير الذي نريد حساب قيمته المطلقة
number = -187
#نحسب القيمة المطلقة
absolute_value = fabs(number)
#نظهر النتيجة للمستخدم
print('The absolute value of {} is {}.'.format(number,absolute_value))

النتيجة:

إذا، نلاحظ أنه في الطريقة الثانية، لم نحتج إلى كتابة اسم الوحدة ثم نقطة “.” ثم اسم الدالة كما فعلنا في الطريقة الأولى. و لكن استعملنا مباشرة الدالة ()fabs.

قد تتساءلون لماذا يوجد هذا الفرق. الإجابة تكمن في كلمة from، فهي التي حددت للمترجم أننا نرغب في استعمال الدالة fabs التي توجد في الوحدة math. و بفضلها أمكننا استعمال الدالة بمفردها كما لو كنا نستعمل الدالة input مثلا.

* from … import

إذا أردنا استدعاء جميع الدوال في وحدة معينة، نكتب نجمة * مكان اسم الدالة:

from math import *

فالنجمة * هنا تعني الكُل all .

random module

وحدة random أو عشوائي، هي وحدة خاصة بدوال تسمح لنا بالقيام بخيارات عشوائية.

لنطلع على دوال هذه الوحدة:

help('random')

سنختار الدالة التالية مثلا: ()randrange

الدالة randrange:

المعاملات أو parameters الخاصة بها هي:

  • start : نقطة بداية النطاق، القيمة الافترضية default value هي 0. و هي اختيارية.
  • stop : نقطة نهائة النطق، و هي ضرورية.
  • step : خطوة الانتقال بين كل قيمة، و هي اختيارية. القيمة الافتراضية هي 1.

هذه الدالة، تخول لنا الحصول على نتيجة عشوائية في نطاق range معين.

إذا أردنا أن نحصل على قيمة عشوائية بين 0 و الرقم 45 مثلا، نكتب الدالة كالتالي:

#importing the module random:
from random import randrange
#Generating a random number between 0 and 100:
random_number = randrange(45)
#Showing the result:
print('Random number from 0 to 100 is :',random_number)

إذا أردنا أن نحصل على قيمة عشوائية بين 45 و الرقم 100 مثلا، نكتب الدالة كالتالي:

#importing the module random:
from random import randrange
#Generating a random number between 45 and 100:
random_number = randrange(45,100)
#Showing the result:
print('Random number from 45 to 100 is :',random_number)

إذا أردنا أن نحصل على قيمة عشوائية بين 23- و الرقم 67- مثلا، نكتب الدالة كالتالي:

#importing the module random:
from random import randrange
#Generating a random number between -67 and -23:
random_number = randrange(-67,-23)
#Showing the result:
print('Random number from -67 to -23 is :',random_number)

نهاية الدرس السابع

انتهى الآن درسنا السابع حول الوحدات modules، سنحاول في درسنا القادم إنشاء وحدات خاصة بنا و وضع شفرتنا في ملف خاص.

السابق
دورة شاملة في لغة البرمجة جافا|Overview
التالي
8 : البرمجة بلغة بايثون – معالجة الاستثناءات

شاركنا برأيك