Table of Contents
مفهوم کتابخانه در پایتون
در فصلهای قبل، بیشتر با خود زبان پایتون و امکانات داخلی آن کار کردید. از اینجا به بعد وارد دنیایی میشویم که باعث میشود پایتون در عمل «قدرتمند» و «کاربردی» شود: کتابخانهها.
در این بخش میخواهیم فقط به این پرسش پاسخ بدهیم: کتابخانه چیست؟ (در پایتون).
تعریف سادهٔ کتابخانه
کتابخانه (Library) در پایتون یعنی:
مجموعهای از کدهای آماده (توابع، کلاسها، متغیرها و …) که قبلاً توسط افراد دیگری نوشته شده و شما میتوانید آن را در برنامهٔ خود «وارد» کرده و استفاده کنید، بدون اینکه لازم باشد آن کدها را خودتان از صفر بنویسید.
به زبان سادهتر:
- شما یک مسئله دارید (مثلاً محاسبهٔ جذر، کار با تاریخ، رسم نمودار، خواندن فایل Excel و …).
- بهجای اختراع دوبارهٔ چرخ، از کتابخانهای استفاده میکنید که این کار را قبلاً انجام داده.
- کتابخانه را در کد خود
importمیکنید و از توابع/امکانات داخل آن بهره میبرید.
نمونهٔ کلی استفاده از یک کتابخانه:
import math # وارد کردن کتابخانه
print(math.sqrt(16)) # استفاده از یکی از توابع آن
در این فصل هنوز وارد جزئیات import نمیشویم؛ فقط میخواهیم مفهوم را درک کنید. نحوۀ وارد کردن ماژولها و کار با کتابخانهها در فصل بعدی همین فصل ۱۲ بهطور جداگانه توضیح داده میشود.
چرا به کتابخانه نیاز داریم؟
کتابخانهها چند مشکل مهم را برای ما حل میکنند:
- صرفهجویی در زمان
لازم نیست هر بار الگوریتمها و ابزارهای رایج را خودتان از اول پیادهسازی کنید. - استفاده از دانش دیگران
بسیاری از کتابخانهها حاصل تجربهٔ سالها کار برنامهنویسان حرفهای هستند. استفاده از آنها یعنی استفاده از این دانش انباشته. - کاهش خطا
کدی که در کتابخانهها قرار دارد معمولاً توسط افراد زیادی استفاده و آزمایش شده و در نتیجه نسبتاً پایدارتر و کمخطاتر است. - تمرکز بر مسئلهٔ اصلی
شما میخواهید مسئلهٔ خودتان را حل کنید (مثلاً نوشتن یک وبسایت، تحلیل دادهٔ فروش، خودکارسازی یک کار اداری). با استفاده از کتابخانهها، از کارهای تکراری و سطح پایین آزاد میشوید و روی منطق اصلی برنامه تمرکز میکنید.
اجزای یک کتابخانه: ماژولها و پکیجها
برای فهم بهتر مفهوم کتابخانه، لازم است دو واژهٔ مهم را بشناسید:
- ماژول (Module):
یک فایل پایتون است (مثلاًmath.py، البته برای کتابخانههای استاندارد معمولاً نام فایل را نمیبینید) که داخل آن توابع، کلاسها و متغیرهای مرتبط با هم قرار دارند. - پکیج (Package):
مجموعهای از چند ماژول که در یک پوشه کنار هم قرار گرفتهاند و با هم یک موضوع بزرگتر را پوشش میدهند.
مثلاً یک پکیج میتواند شامل ماژولهایmodels.py,views.py,utils.pyو … باشد.
در عمل:
- کتابخانهٔ پایتون میتواند از یک ماژول ساده شروع شود،
- و تا یک پکیج بسیار بزرگ با دهها یا صدها ماژول گسترش یابد.
در این فصل فقط ایدهٔ کلی را بدانید:
کتابخانه مجموعهای از این ماژولها/پکیجهاست که برای حل یک دسته مسائل خاص طراحی شدهاند.
انواع کتابخانهها در پایتون (از دید کاربرد)
از نظر کاربرد، کتابخانههای پایتون را میتوان به دستههای مختلفی تقسیم کرد. چند نمونهٔ رایج:
- کتابخانههای ریاضی و علمی
برای محاسبات، آمار، جبر خطی، تحلیل داده و …
مثلmath,statistics, و (در فصلهای بعدی)numpy,pandas. - کتابخانههای کار با تاریخ و زمان
مثلdatetime. - کتابخانههای کار با فایلها و سیستم عامل
مثلos,pathlib,shutil. - کتابخانههای وب
مثلflask,requests. - کتابخانههای مصورسازی (رسم نمودار)
مثلmatplotlib. - کتابخانههای خودکارسازی
برای خودکار کردن کارهای تکراری، مثل کار با فایلها، مرورگر و …
در ادامهٔ همین فصل ۱۲، با چند کتابخانهٔ مهم استاندارد پایتون از نزدیک آشنا میشوید.
کتابخانهٔ استاندارد در برابر کتابخانههای خارجی
کتابخانهها در پایتون از نظر محل تأمین به دو دستهٔ مهم تقسیم میشوند:
۱. کتابخانهٔ استاندارد (Standard Library)
- اینها بهصورت پیشفرض همراه خود پایتون نصب میشوند.
- برای استفاده از آنها نیازی به نصب جداگانه ندارید.
- فقط کافی است در برنامهٔ خود آنها را
importکنید. - مثالها:
mathبرای توابع ریاضی،randomبرای تولید اعداد تصادفی ساده،datetimeبرای تاریخ و زمان،- و دهها مورد دیگر.
این دسته را در بخشهای بعدی همین فصل بیشتر تمرین میکنیم.
۲. کتابخانههای خارجی (Third-Party Libraries)
- این کتابخانهها خارج از پایتون اصلی هستند و توسط جامعهٔ کاربری، شرکتها یا افراد مستقل ساخته شدهاند.
- برای استفاده از آنها باید ابتدا آنها را نصب کنید (معمولاً با ابزار
pip، که در انتهای همین فصل معرفی میشود). - مثالها:
numpyوpandasبرای علم داده،flaskوdjangoبرای توسعهٔ وب،requestsبرای کار با HTTP و وبسرویسها.
بهطور خلاصه:
- کتابخانهٔ استاندارد = آماده و نصبشده، همراه خود پایتون.
- کتابخانهٔ خارجی = باید جداگانه نصب شود.
مزیت بزرگ پایتون: اکوسیستم غنی کتابخانهها
یکی از دلیلهای اصلی محبوبیت پایتون، تعداد زیاد و تنوع بسیار بالای کتابخانههای آن است. برای نمونه:
- اگر بخواهید یک سایت ساده بسازید → کتابخانههای وب مثل
flaskدر دسترس هستند. - اگر بخواهید دادههای فروش را تحلیل کنید → کتابخانههایی مثل
pandasوmatplotlib. - اگر بخواهید کارهای تکراری روی فایلها، ایمیلها یا وب انجام دهید → کتابخانههای خودکارسازی.
یعنی تقریباً برای هر کاری که فکرش را بکنید، احتمالاً قبلاً کسی کتابخانهای برایش نوشته است.
استفادهٔ مفهومی از کتابخانه در کد
در این بخش فقط میخواهیم یک تصویر ذهنی بسازیم که «کتابخانه» در کد چگونه ظاهر میشود. جزئیات فنی import در بخش بعدی فصل میآید.
یک الگوی ذهنی ساده:
- شما به یک قابلیت نیاز دارید (مثلاً محاسبهٔ جذر).
- متوجه میشوید کتابخانهٔ
mathاین قابلیت را دارد. - آن را وارد کد خود میکنید.
- از توابعش استفاده میکنید.
مثال مفهومی:
import math # 1. گفتن به پایتون: من از کتابخانهٔ math میخواهم استفاده کنم
x = math.sqrt(25) # 2. استفاده از تابع sqrt داخل کتابخانهٔ math
print(x) # خروجی: 5.0
اینجا خودتان تابع sqrt را ننوشتهاید؛ فقط از کتابخانهای استفاده کردهاید که قبلاً آن را پیادهسازی کرده است.
تشبیه روزمره برای درک بهتر
چند تشبیه برای جا افتادن مفهوم کتابخانه:
- کتابخانه مثل جعبهابزار است
بهجای اینکه هر بار خودتان چکش و پیچگوشتی و آچار بسازید، یک جعبهابزار آماده دارید؛ فقط ابزار مناسب را از داخل آن برمیدارید و استفاده میکنید. - کتابخانه مثل اپلیکیشن روی گوشی است
خود سیستمعامل (اندروید / iOS) امکاناتی دارد، اما برای کارهای خاص (شبکهٔ اجتماعی، نقشه، یادداشتبرداری) اپهای جدا نصب میکنید.
در پایتون هم خود زبان امکاناتی دارد، اما برای کارهای خاص از کتابخانهها استفاده میکنید.
چطور بفهمیم چه کتابخانهای لازم داریم؟
در این مرحله لازم نیست نام صدها کتابخانه را حفظ کنید. مهمتر این است که الگوی فکر کردن را یاد بگیرید:
- ابتدا مسئلهٔ خود را واضح کنید
- «میخواهم با تاریخ و زمان کار کنم.»
- «نیاز دارم یک نمودار رسم کنم.»
- «میخواهم با یک سایت از طریق API صحبت کنم.»
- سپس جستوجو کنید
- در اینترنت با عباراتی مثل
python library for chartsیاکتابخانه پایتون برای رسم نمودار. - اغلب به یک یا چند کتابخانهٔ مشهور میرسید که مخصوص آن کار طراحی شدهاند.
در فصلهای بعد، چند کتابخانهٔ مهم را بهطور مشخص معرفی خواهیم کرد تا برای شروع، چند «نام آشنا» داشته باشید.
جمعبندی
- کتابخانه در پایتون یعنی مجموعهای از کدهای آماده که دیگران نوشتهاند و شما میتوانید در برنامهٔ خود از آنها استفاده کنید.
- کتابخانهها معمولاً شامل ماژولها و پکیجها هستند.
- دو دستهٔ اصلی داریم:
- کتابخانهٔ استاندارد (همراه پایتون، بدون نیاز به نصب جداگانه)،
- کتابخانههای خارجی (نیازمند نصب با ابزاری مثل
pip). - قدرت واقعی پایتون از اکوسیستم غنی کتابخانههای آن میآید.
در بخش بعدی این فصل، یاد میگیرید چگونه این کتابخانهها را با import وارد برنامهٔ خود کنید و از آنها بهطور عملی استفاده کنید.