11 کتابخانه پایتونی که هر برنامه نویسی باید بداند
کتابخانه ها و ماژول ها زندگی یک برنامه نویس را هموار می کند.
هنگامی که با پروژه ها کار می کنید ، ممکن است با سناریوهایی روبرو شوید که با کدگذاری استاندارد زبان برنامه نویسی python قادر به حل آنها نخواهید بود. ما برای غلبه بر این مشکلات به برخی کتابخانه ها و ماژول ها نیاز داریم. در این مقاله 11 کتابخانه پایتونی که به نظر میرسد مهم هستند را به شما معرفی خواهیم کرد.
خوشبختانه پایتون از تعداد زیادی ماژول و کتابخانه پشتیبانی می کند. پایتون دارای ماژول های داخلی و همچنین کتابخانه ها و ماژول های شخص ثالث برای توسعه است. ما هر دو ماژول یکپارچه و شخص ثالث را مشاهده خواهیم کرد که برای پروژه های پایتون بسیار مفید است. بیایید ابتدا ماژول های داخلی را بررسی کنیم.
# ماژولهای داخلی پایتون
پایتون دارای تعداد زیادی ماژول داخلی برای موارد مختلف استفاده است. ما با توجه به کاربرد ، ماژول ها را یک به یک مطالعه می کنیم.
1. ماژول collections پایتون
پایتون انواع مختلفی از مجموعه ها را برای ذخیره داده ها دارد. به عنوان مثال ، tuple ، list ، dict و غیره برخی از مجموعه های داخلی پایتون هستند. collections ویژگی های اضافی را به مجموعه های داخلی ارائه می دهد.
اگر از deque ماژول collections استفاده کنید، بیشتر شبیه یک لیست پایتون است. اما ، ما می توانیم عناصر را از هر دو طرف وارد کرده و حذف کنیم. سریعتر از لیست است می توانید بر اساس نیاز خود از deque استفاده کنید. بیایید برخی از کدگذاری واقعی را با مجموعه داده های collection.deque مشاهده کنیم.
import collections
nums = [1, 2, 3]
# creating deque collection from the list
deque = collections.deque(nums)
print(deque)
# adding an element at the end
deque.append(4)
print(deque)
# adding element at the starting
deque.appendleft(0)
print(deque)
# removing the element at the end
deque.pop()
print(deque)
# removing element at the starting
deque.popleft()
print(deque)
کد بالا را اجرا کنید؛ نتایج را ببینید. ما مجموعه داده های دیگری نیز در collections داریم:
•counter: یک دیکشنری از تعداد المانهای موجود را برمیگرداند.
•ChainMap: با استفاده از ChainMap میتونید چندین دیکشنری رو داخل یک ساختار قرار داده و به عنوان یک واحد مورد استفاده قرار بدین.
•namedTuples: در پایتون namedTupleها این امکان رو بوجود آوردن تا ما بتونیم به هرکدوم از آیتمها در یک tuple اسم بدیم و برای دسترسی به هرکدوم از اون آیتم ها بتونیم از اون اسم ها استفاده کنیم.
•orderedDict: دیکشنری ها در پایتون بدون ساختار هستند اما با استفاده از orderedDictها میتوانید دیکشنری هایی بسازید که ساختارمند هستند یعنی ترتیب ورود اطلاعات رو حفظ میکنند.
برای بررسی همه collections و متدهای داده، به اسناد ماژول collections بروید.
2. ماژول csv پایتون
ما می توانیم از فایل های CSV (مقادیر جدا شده با کاما) برای ذخیره داده های جدول استفاده کنیم. رایج ترین قالب برای وارد کردن و صادر کردن داده ها از صفحات گسترده و پایگاه های داده. پایتون دارای ماژولی به نام CSV برای مدیریت پرونده های CSV است.
بیایید یک نمونه از خواندن داده ها از یک فایل CSV را مشاهده کنیم.
یک فایل با نام sample.csv ایجاد کرده و داده های زیر را جایگذاری کنید.
Name,Age,Graduation Year
Hafeez,21,2021
Aslan,23,2019
Rambabu,21,2021
ما متدهایی برای خواندن و نوشتن در ماژول CSV داریم. ما نحوه خواندن داده های فایل های CSV با استفاده از ماژول CSV را خواهیم دید.
import csv
with open('sample.csv') as file:
# creating the reader
reader = csv.reader(file)
# reading line by line using loop
for row in reader:
# row is a list containing elements from the CSV file
# joingin the list using join(list) method
print(','.join(row))
همچنین یک شی به نام csv.writer () برای نوشتن داده ها در فایل CSV خواهیم داشت. ما یک ماژول دیگر به نام JSON هم داریم که برای مدیریت فایل های JSON استفاده می شود.
3. ماژول random پایتون
پایتون دارای یک ماژول به نام random است که به شما امکان می دهد داده ها را به صورت تصادفی تولید کنید. ما می توانیم هر چیزی را به طور تصادفی با استفاده از متدهای مختلف ماژول random تولید کنیم. می توانید از این ماژول در برنامه هایی مانند tic-tac-toe ، بازی تاس و غیره استفاده کنید.
بیایید یک برنامه ساده برای تولید اعداد صحیح تصادفی از یک محدوده مشخص را مشاهده کنیم.
import random
# generating a random number from the range 1-100
print(random.randint(1, 100))
بیایید یک بازی کوچک و ساده با استفاده از ماژول random بنویسیم. ما می توانیم آن را یک بازی حدس زدن اعداد بنامیم.
برنامه یک عدد تصادفی در محدوده 1 تا 100 ایجاد می کند. کاربر تا زمانی که با عدد تصادفی تولید شده توسط برنامه مطابقت نداشته باشد، عدد را حدس می زند. هر بار چاپ می کند که آیا شماره کاربر کمتر از شماره تصادفی است یا بیشتر از شماره تصادفی. سپس، کد منبع تعداد حدس ها را نمایش می دهد.
# importing random module
import random
# generating random number
random_number = random.randint(1, 100)
# initializing no. of guess to 0
guess_count = 0
# running loop until user guess the random number
while True:
# getting user input
user_guessed_number = int(input("Enter a number in the range of 1-100:- "))
# checking for the equality
if user_guessed_number == random_number:
print(f"You have guessed the number in {guess_count} guesses")
# breaking the loop
break
elif user_guessed_number < random_number:
print("Your number is low")
elif user_guessed_number > random_number:
print("Your number is high")
# incrementing the guess count
guess_count += 1
4. ماژول tkinter پایتون - توسعه گرافیکی
Tkinter یک ماژول داخلی برای توسعه برنامه های GUI (رابط کاربری گرافیکی) است. برای مبتدیان مناسب است. ما می توانیم برنامه های GUI مانند ماشین حساب، سیستم ورود، ویرایشگر متن و غیره را توسعه دهیم. منابع زیادی برای یادگیری توسعه GUI با Tkinter وجود دارد.
بهترین پشتیبانی این است که از اسناد رسمی پیروی کنید. برای شروع کار با Tkinter، به اسناد بروید و شروع به ایجاد برنامه های کاربردی GUI زیبا کنید.
# ماژولهای خارجی پایتون
برنامههای شخص ثالث یا third-party برنامههایی هستند که در داخل پایتون در دسترس نبوده و باید با pip آنها را نصب کنید.
5. requests - ارسال درخواست http
ماژول requests برای ارسال انواع درخواست های HTTP به سرور استفاده می شود. اجازه می دهد تا درخواست های HTTP/1.1 ارسال شود. ما همچنین می توانیم با استفاده از دیکشنری پایتون، headers، data و سایر موارد را اضافه کنیم. از آنجا که ماژول شخص ثالث است ، باید آن را نصب کنیم. برای نصب ماژول درخواست ، دستور زیر را در ترمینال یا خط فرمان اجرا کنید.
pip install requests
کار با ماژول requests ساده است. ما می توانیم بدون دانش قبلی کار با requests را شروع کنیم. بیایید ببینیم چگونه درخواست get را ارسال کنیم و چه چیزی برمی گردد.
import requests
# sening a get request
request = requests.get("https://www.google.com/")
#
print(request.status_code)
print(request.url)
print(request.request)
کد فوق status_code، نشانی اینترنتی و روش درخواست (GET، POST) را چاپ می کند. منبع URL را نیز دریافت خواهید کرد. با بایت request.content می توانید به آن دسترسی پیدا کنید. به اسناد ماژول requests بروید و موارد بیشتری را کاوش کنید.
برای یادگیری وب اسکرپینگ میتوانید دوره آموزش web scraping در پایتون را ببینید.
6. BeautifulSoup4 - وب اسکرپینگ
از کتابخانه BeautifulSoup برای خراشیدن وب استفاده می شود. این یک ماژول مفید برای کار است. حتی مبتدیان می توانند با استفاده از اسناد شروع به کار با آن کنند. برای حذف جزئیات گزارشات مشتری ، کد نمونه را مشاهده کنید.
می توانید با تایپ کردن دستور زیر در ترمینال/خط فرمان ، BeautifulSoup را نصب کنید.
pip install beautifulsoup4
و ، یک برنامه ساده برای اولین کراول شما.
## Scrping the ConsumerReport products list using BeautifulSoup
## importing bs4, requests modules
import bs4
import requests
## initializing url
url = "https://www.consumerreports.org/cro/a-to-z-index/products/index.htm"
## getting the reponse from the page using get method of requests module
page = requests.get(url)
## storing the content of the page in a variable
html = page.content
## creating BeautifulSoup object
soup = bs4.BeautifulSoup(html, "lxml")
## see the class or id of the tag which contains names ans links
div_class = "crux-body-copy"
## getting all the divs using find_all method
div_tags = soup.find_all("div", class_=div_class) ## finding divs whichs has mentioned class
## we will see all the tags with a tags which has name and link inside the div
for tag in div_tags:
print(tag)
کد بالا را اجرا کنید تا جادوی کراول وب را ببینید.
# علم داده و یادگیری ماشینی
کتابخانه هایی وجود دارد که مخصوص علوم داده و یادگیری ماشین ایجاد شده است. همه اینها در C. توسعه یافته است. آنها مثل رعد و برق سریع هستند.
7. Numpy - محاسبات علمی
numpy به ما امکان می دهد آرایه های چند بعدی را کار کنیم. امکان پیاده سازی آرایه ها در پایتون وجود ندارد. عمدتا توسعه دهندگان در پروژه های یادگیری ماشین خود از numpy استفاده می کنند. یادگیری و کتابخانه منبع باز آسان است. تقریباً هر مهندس یادگیری ماشین یا دانشمند داده از این ماژول برای محاسبات پیچیده ریاضی استفاده می کند.
برای نصب ماژول numpy دستور زیر را اجرا کنید.
pip install numpy
8. pandas - آنالیز داده
Pandas یک ماژول تجزیه و تحلیل داده است. با استفاده از کتابخانه pandas می توانیم داده ها را به طور موثر فیلتر کنیم. انواع مختلفی از ساختارهای داده را ارائه می دهد که برای کار مفید هستند. همچنین مدیریت فایل با فرمت های مختلف فایل را فراهم می کند.
ماژول پاندا را با استفاده از دستور زیر نصب کنید.
pip install pandas
9. Matplotlib - رسم نمودار
Matplotlib یک کتابخانه ترسیم نمودار دو بعدی است. می توانید داده ها را با استفاده از Matplotlib تجسم کنید.
ما می توانیم تصاویری از شکل ها را در قالب های مختلف ایجاد کنیم. ما انواع مختلفی از نمودارها مانند نمودارهای میله ای، نمودارهای خطا، هیستوگرام ها، پراکندگی ها و غیره را ترسیم می کنیم. با استفاده از دستور زیر می توانید matplotlib را نصب کنید.
pip install matplotlib
نکته:- می توانید Anaconda را نصب کنید تا همه کتابخانه ها و ماژول های مورد نیاز برای علم داده را دریافت کنید.
# فریمورکهای وب
ما می توانیم چارچوب های وب زیادی را در پایتون پیدا کنیم. ما در مورد دو چارچوب که به طور گسترده توسط توسعه دهندگان استفاده می شود بحث خواهیم کرد. دو فریم ورک جنگو و فلاسک هستند.
10. جنگو
جنگو یک چارچوب وب منبع باز است که در پایتون توسعه یافته است. ایجاد وب سایت با Django راحت است. ما می توانیم هر نوع سایتی را با استفاده از این چارچوب ایجاد کنیم. برخی از محبوب ترین سایتهایی که با Django ساخته شده اند عبارتند از: Instagram ، bitbucket ، Disqus ، Mozilla Firefox و غیره ...
- ما می توانیم وب سایت های پیچیده را به سرعت با ویژگی های جنگو بسازیم.
- Django در حال حاضر بسیاری از کارهای مورد نیاز برای توسعه وب را انجام می دهد.
- همچنین امنیت حملات SQL Injection ، cross-site scripting ، جعل درخواست بین سایت ها و clickjacking را فراهم می کند.
- ما می توانیم هر وب سایتی را از سیستم مدیریت محتوا گرفته تا سایت های اجتماعی بسازیم.
مستندات جنگو بدون ابهام است. شما باید با Python for Django آشنا شوید. اما اگر نیستید نگران نباشید. یادگیری جنگو آسان است.
11. فلسک
Flask یک چارچوب میکرو وب است که در پایتون توسعه یافته است.
فلسک بیشتر از جنگو پایتونیک است. در اینجا مستندات عالی دارد. از موتور قالب Jinja استفاده می کند. ایجاد وب سایت های بزرگ Flask بسیار پیچیده است. بیشتر ویژگی هایی مانند مسیریابی URL ، ارسال درخواست، کوکی های امن، سشنها و غیره ، هم در جنگو و هم در Flask وجود دارد.
چارچوب را بر اساس پیچیدگی وب سایت خود انتخاب کنید. جنگو در بین توسعه دهندگان محبوبیت زیادی پیدا کرده است. این پرکاربردترین چارچوب برای توسعه وب در پایتون است.
نتیجه
امیدوارم با ماژول ها ، کتابخانه ها و چارچوب های مختلف پایتون آشنا شده باشید.
همه یکبار مبتدی بودند.
هر کاری را که می خواهید شروع کنید ، ابتدا به اسناد بروید و یادگیری آن را شروع کنید. اگر نمی توانید اسناد را درک کنید ، دوره هارا در وب سایت های آموزشی پیدا کنید.