7.5 البحث عن الوَحدات
أهداف التعلم
في نهاية هذا القسم، ينبغي أن تكون قادرًا على:
- شرح الاختلافات بين المكتبة القياسية و PyPI.
- البحث في python.org و pypi.org عن الوَحدات ذات الاهتمام.
الوحدات المُضمَّنة
إن مكتبة بايثون القياسية (Python Standard Library) هي مجموعة من الدوال المُضمَّنة والوَحدات التي تدعم مهام البرمجة الشائعة. مثال: توفر وَحدة math دوال مثل sqrt() وثوابت مثل pi. تتضمن الوثائق الرسمية لبايثون مرجعًا للمكتبة وفهرسًا للوَحدات للتعرف على المكتبة القياسية.
لعقود من الزمن، حافظت بايثون على فلسفة "البطاريات متضمنة" (batteries included). تعني هذه الفلسفة أن المكتبة القياسية يجب أن تأتي بكل ما يحتاجه معظم المبرمجين. في الواقع، تتضمن المكتبة القياسية أكثر من 200 وَحدة مُضمَّنة!
| الوحدة | الوصف |
|---|---|
|
دوال عامة متعلقة بالتقويم. |
|
أنواع ودوال أساسية للتاريخ والوقت. |
|
إنشاء ومعالجة رسائل البريد الإلكتروني. |
|
دوال وثوابت رياضية. |
|
التفاعل مع نظام التشغيل. |
|
توليد أرقام شبه عشوائية. |
|
دوال الإحصاء الرياضي. |
|
مُعامِلات ودوال خاصة بالنظام. |
|
إطار عمل تعليمي للرسومات البسيطة. |
|
قراءة وكتابة ملفات الأرشيف بصيغة ZIP. |
مفاهيم تطبيقية
الوحدات المُضمَّنة
استخدم مرجع المكتبة وفهرس الوَحدات وروابط التوثيق أعلاه للإجابة على الأسئلة.
وَحدات الطرف الثالث
إن فهرس حزم بايثون (Python Package Index) (PyPI)، المتاح على pypi.org، هو المكتبة الرسمية لبرمجيات الطرف الثالث لبايثون. يُنطق الاختصار "PyPI" مثل باي بي آي (على عكس PyPy، وهو مشروع مختلف).
تسمح PyPI لأي شخص بتطوير ومشاركة الوَحدات مع مجتمع بايثون. يشمل مؤلفو الوَحدات أفرادًا، وشركات كبيرة، ومنظمات غير ربحية. تساعد PyPI المبرمجين على تثبيت الوَحدات وتلقي التحديثات.
معظم البرمجيات المتاحة على PyPI مجانية ومفتوحة المصدر. تدعم مؤسسة بايثون للبرمجيات PyPI وتُصانُ من قِبَل مجموعة مستقلة من المطورين.
| الوحدة | الوصف |
|---|---|
|
تحويل وتنسيق التواريخ والأوقات والطوابع الزمنية. |
|
استخراج البيانات من مستندات HTML و XML. |
|
رسوم بيانية وتطبيقات تفاعلية في المتصفح. |
|
تصوير بيانات ثابت، متحرك، وتفاعلي. |
|
تحرير الفيديو، تركيبه، ومعالجته. |
|
أدوات معالجة اللغة الطبيعية للغات البشرية. |
|
حزمة أساسية للحوسبة العددية. |
|
مكتبة لتحليل البيانات، السلاسل الزمنية، والإحصاء. |
|
معالجة الصور بصيغ jpg و png وغيرها. |
|
أداة اختبار كاملة الميزات وإطار عمل لاختبار الوحدات. |
|
مكتبة HTTP أنيقة للاتصال بخوادم الويب. |
|
أدوات بسيطة وفعالة لتحليل البيانات التنبؤي. |
|
خوارزميات أساسية للحوسبة العلمية. |
|
الزحف إلى مواقع الويب واستخلاص البيانات من صفحات الويب. |
|
منصة تعلم آلة شاملة للجميع. |
مفاهيم تطبيقية
وَحدات الطرف الثالث
استخدم pypi.org والروابط في الجدول أعلاه للإجابة على الأسئلة.
استكشاف إضافي
غالبًا ما تسلط مدونات البرمجة الضوء على وَحدات PyPI لتوضيح فائدة بايثون. توفر الأمثلة التالية مزيدًا من المعلومات الأساسية حول الوَحدات المذكورة أعلاه.
جرّب بنفسك
عيد ميلاد سعيد
غالبًا ما تتضمن صفحات توثيق الوَحدات أمثلة لمساعدة المبرمجين على التعرف على الوَحدة. لهذا التمرين، ارجع إلى الأمثلة التالية من توثيق وَحدة datetime:
اكتب برنامجًا ينشئ كائن date يمثل تاريخ ميلادك. ثم احصل على كائن date يمثل تاريخ اليوم (التاريخ الذي يتم فيه تشغيل البرنامج). احسب الفرق بين التاريخين، واعرض النتائج بالتنسيق التالي:
Your birth date: 2005-03-14
Today's date is: 2023-06-01
You were born 6653 days ago
(that is 574819200 seconds)
You are about 18 years old
جرّب بنفسك
عمر أكثر دقة
لا توفر وَحدة datetime طريقة مُضمَّنة لعرض العمر الدقيق للشخص. مثال: يحسب البرنامج التالي عمرًا دقيقًا (بالسنوات والأيام) باستخدام القسمة السفلية وباقي القسمة. الناتج هو: You are 15 years and 4 days old.
from datetime import date
birth = date(2005, 3, 14)
today = date(2020, 3, 14) # 15 years later
delta = today - birth
years = delta.days // 365
days = delta.days % 365
print("You are", years, "years and", days, "days old")
لاحظ كيف تُؤخذ السنوات الكبيسة في الحسبان. يحدث 29 فبراير أربع مرات بين birth و today. لذلك، المستخدم ليس فقط بعمر 15 عامًا، بل 15 عامًا و 4 أيام.
العديد من الوَحدات الشائعة الاستخدام من PyPI، بما في ذلك arrow، مثبتة في صَدَفة بايثون على python.org/shell. افتح صَدَفة بايثون واكتب الأسطر التالية:
import arrow
birth = arrow.get(2005, 3, 14)
birth.humanize()
ارجع إلى أمثلة humanize() من توثيق وَحدة arrow. في صَدَفة بايثون، اكتشف كيفية عرض عدد السنوات والأيام منذ birth باستخدام سطر واحد من الشِفرة. ثم اعرض عدد السنوات والأشهر والأيام منذ birth. أخيرًا، استخدم دالّة print() لإخراج النتائج بهذا التنسيق: You are 18 years 4 months and 7 days old.
عندما يسمح الوقت، جرّب دوال أخرى توفرها وَحدة arrow.