مقالات
زبان برنامه نویسی پایتون چیست
تاریخچه زبان برنامه نویسی پایتون
کار روی زبان پایتون در اواخر دهه هشتاد میلادی توسط خیدو فان روسوم (Guido van Rossum) هلندی شروع شد. در ابتدا این کار تا حدی جنبه سرگرمی داشت زیرا او به دنبال یک پروژه جالب بود تا خودش را در کریسمس مشغول نگه دارد. زبان برنامه نویسی که گفته میشود پایتون از آن الهام گرفته است، زبان برنامهنویسی ABC است. او قبلاً به ایجاد ABC کمک کرده بود و مشکلاتی را در ABC دیده بود اما بیشتر ویژگیها را دوست داشت. بعد از آن با هوشمندی بسیاری از ایرادهای ABC را برطرف کرد و یک زبان برنامهنویسی خوب ایجاد کرد. او نام این پروژه را پایتون گذاشت. الهامبخش این نام از برنامه تلویزیونی بیبیسی - «سیرک پرنده مونتی پایتون» گرفته شد، زیرا او از طرفداران پر و پا قرص این برنامه تلویزیونی بود و همچنین میخواست نامی کوتاه، منحصر به فرد و کمی مرموز برای اختراع خود داشته باشد و به همین دلیل نام آن را پایتون گذاشت!.
این زبان سرانجام در سال 1991 منتشر شد. زمانی که منتشر شد، از کدهای بسیار کمتری برای بیان مفاهیم استفاده میکرد (در مقایسه با جاوا، سی و سیپلاسپلاس). فلسفه طراحی آن نیز بسیار خوب بود. هدف اصلی آن ارائه خوانایی کد و بهرهوری پیشرفته توسعهدهندگان است.
پایتون برای تبدیل شدن به یکی از بهترین زبانهای برنامهنویسی دنیا مسیری طولانی طی کرده است. معروفترین نسخههای آن پایتون2 و پایتون3 هستند. البته مدتهاست که از پایتون3 استفاده میشود. این زبان الهامبخش زبانهای بسیاری بوده است. زبانهایی مانند: روبی، کبرا، کافیاسکریپت، سوییفت، گو، جولیا همگی از پایتون الهام گرفتهاند.
کاربرد زبان برنامه نویسی پایتون
علوم داده:
پایتون در زمینه یادگیری ماشین، علم داده و نوآوریهای هوش مصنوعی پیشرو بوده است. اما فراتر از سادگی و تطبیق پذیری ذاتی، چیزی که پایتون را متمایز می کند مجموعه گسترده ای از کتابخانه ها و بسته های آن است که می تواند طیف گسترده ای از توسعه و همچنین نیازهای علم داده را برآورده کند.
طراحی وب:
یکی از مهمترین کاربردهای پایتون توسعه وبسایتها و نرمافزارهای مبتنی بر وب است. به لطف وجود فریمورکهایی چون جنگو (Django) یا موارد دیگری مانند فلسک (Flask) یا Bottle چنین امکانی فراهم شده است.
بازی سازی:
با رشد سریع صنعت بازی، پایتون ثابت کرده است که یک گزینه خیلی خوب برای توسعه بازی است. بازیهای محبوبی مانند دزدان دریایی کارائیب (Pirates of the Caribbean) یا Bridge commander و Battlefield 2 از برنامهنویسی Python برای طیف گستردهای از قابلیتها و افزونهها استفاده میکنند. وجود کتابخانه های محبوب بازی های دو بعدی و سه بعدی مانند pygame، panda3D و Cocos2D روند توسعه بازی را کاملاً بدون دردسر میکند.
برنامههای بصری و صوتی:
پایتون به ابزارها و کتابخانههای زیادی مجهز است تا کار پردازش صوت و تصویر را انجام دهد. برنامههای محبوبی مانند نتفلیکس، اسپاتیفای و یوتیوب با کمک پایتون نوشته شدهاند. این کار توسط کتابخانه هایی مانند: Dejavu، Pyo، Mingus، SciPy و OpenCV نوشته شدهاند.
طراحی GUI برای نرمافزارهای دسکتاپ:
پایتون یک زبان برنامه نویسی تعاملی است که به توسعه دهندگان کمک می کند تا رابط کاربری گرافیکی را به راحتی ایجاد کنند. پایتون ابزارهای داخلی مانند PyQT و kivy و Tkinter و بسیاری از کتابخانههای دیگر مانند آنها برای ایجاد یک رابط کاربری گرافیکی (GUI) کاملاً کاربردی به شیوهای بسیار امن و کارآمد دارد. با کمک این ابزارها میتوان نرمافزارهایی برای سیستم عاملهای مختلف مانند ویندوز و لینوکس طراحی کرد.
وب اسکریپینگ:
وب اسکریپینگ (web scraping) یک فرآیند خودکار برای استخراج اطلاعات از وبسایتها به روشی ساده و سریع است. معمولا این اطلاعات توسط تحلیلگران مورد استفاده قرار میگیرد. پایتون کتابخانهها و ابزارهای قدرتمند و متنوعی برای وب اسکریپینگ دارد. برخی از آنها عبارتند از: BeautifulSoup و Scrapy و Selenium.
ویژگی های زبان برنامه نویسی پایتون
- پایتون یک زبان برنامهنویسی سطح بالا (high-level) است. به این معنی که به زبان انسان نزدیک است و مانند برخی زبانهای دیگر مانند C هنگام کار کردن با آن نیازی به مدیریت حافظه یا آشنایی با معماری کامپیوتر نداریم.
- یادگیری پایتون و کدنویسی در آن آسان است. کدهای پایتون خوانایی بالایی دارد و بسیاری از دستورهای آن مشابه با زبان انگلیسی است. یادگیری دستورات اولیه آن فقط چند ساعت طول میکشد و یکی از زبانهایی است که کودکان و دانشآموزان هم میتوانند برنامهنویسی را با آن شروع کنند.
- پایتون منبعباز (open source) و رایگان است. میتوانید آن را از وبسایت رسمی پایتون (python.org) دانلود کنید.
- این زبان از برنامهنویسی شیءگرا (object-oriented programming) و مفاهیم مرتبط با آن مانند کلاس (class)، وراثت (inheritance) و کپسولهسازی (encapsulation) پشتیبانی میکند.
- زبان برنامهنویسی پایتون از برنامهنویسی رابط کاربری گرافیکی (GUI) نیز پشتیبانی میکند. بنابراین با این زبان میتوانید برنامههای مختلفی برای ویندوز، لینوکس و سایر سیستم عاملها بسازید. ابزارهایی مانند: PyQt، wxPython و Tkinter میتوانید این کار را انجام دهید.
- پایتون کتابخانههای استاندارد بسیاری دارد. وجود این حجم از کتابخانه باعث میشود نیاز نداشته باشدی برای هر کاری خودتان کد بزنید. به طور خاص در زمینه کار با دادههای علمی مانند هوش مصنوعی، یادگیری ماشین، داده کاوی و ... زبان پایتون و کتابخانههای معروف آن بسیاری اوقات انتخاب اول محققان است.
مزایا و معایب پایتون
پایتون به دلایل زیادی به طور گسترده مورد استفاده قرار گرفته و مورد پسند واقع شده است. در اینجا به برخی از مزایای پایتون اشاره میکنیم.
سهولت استفاده:
نحو زبان پایتون ساده، مختصر و سرراست است. بسیاری از کدهای پایتون بسیار شبیه به زبان انگلیسی ساده است و بسیار خوانا است. این باعث میشود برنامههای پایتون به راحتی خوانده شوند و اشکالزدایی شوند. ساختارهای کنترل پایتون بصری و آسان برای استفاده هستند. علاوه بر این، نوع داده در پایتون به صورت پویا تعیین میشود. بنابراین هیچ الزامی برای اعلام نوع هر متغیر وجود ندارد. به همین دلایل، پایتون یکی از کارآمدترین زبانهاست.
منحنی یادگیری ملایم:
پایتون یکی از زبانهای ساده برای یادگیری است و گزینه خوبی برای افرادی است که شروع به یادگیری برنامهنویسی کردهاند. برنامهنویسانی که از زبانهایی مانند C یا جاوا به پایتون روی میآورند میتوانند به سرعت به اوج بازدهی برسند. همچنین بسته پایتون حاوی یک محیط توسعه و یادگیری یکپارچه مفید به نام IDLE است.
تطبیق پذیری و انعطافپذیری:
پایتون یک زبان منعطف است که به طور کامل از برنامه نویسی رویهای (procedural) و شیگرا (object-oriented programming) پشتیبانی میکند. با توجه به بستههای داخلی و شخص ثالث، برای طیف گستردهای از کارها مناسب است. در زمینه علم داده و یادگیری ماشین انتخاب اول بسیاری از محققان است. همچنین به طور گسترده برای توسعه سمت سرور وبسایتها (backend) و اینترنت اشیا (IoT) استفاده میشود. حتی زمانی که بهترین انتخاب برای یک کار خاص نیست، معمولا هنوز یک گزینه قابل اجرا است.
کارآمد برای توسعه سریع:
از آنجایی که استفاده از پایتون آسان است و نیازی به کامپایل ندارد، برنامهها زمان کمتری برای توسعه نیاز دارند. برنامههای پایتون معمولاً بسیار کوتاهتر از برنامههای معادل در زبانهای دیگر هستند. این یک انتخاب عالی برای ساخت سریع نمونههای اولیه در یک محیط توسعه سریع نرم افزار است.
قابلیت حمل (portability) واقعی:
مزیت بزرگ پایتون این است که می توان آن را یک بار نوشت و در هر جایی اجرا کرد. پایتون لازم نیست از قبل کامپایل شود، بنابراین کاربران یک برنامه پایتون واقعی را اجرا میکنند و نه یک فایل اجرایی پایتون.
بدون فرآیند کامپایل:
پایتون یک زبان تفسیر شده است و برنامهها به طور خودکار در زمان اجرا کامپایل میشوند. یک برنامه به محض نوشتن میتواند اجرا شود. هیچ کامپایلر جداگانه و هیچ مرحله کامپایل وقتگیر وجود ندارد. نوشتن، اشکالزدایی و تغییر تدریجی برنامههای پایتون آسان است.
تخصیص خودکار حافظه:
پایتون اشارهگر (pointer) ندارد و توسعهدهندگان مجبور نیستند فضای خالی در حافظه اختصاص دهند. پایتون حافظه را به طور خودکار تخصیص میدهد و یک زباله جمعکننده (garbage collector)، حافظه اشیاء دور ریخته شده را بازیافت می کند. این بدان معنی است که توسعه دهندگان نیازی به نگرانی در مورد نشت حافظه، ارجاعات اشاره گر نامعتبر یا اندازه هر شیء ندارند.
اشیاء و کتابخانه های داخلی گسترده:
پایتون دارای تعداد زیادی اشیاء ترکیبی داخلی (built-in) از جمله لیستها، مجموعهها و دیکشنریهای شبیه به رکورد است. هر یک از این اشیا مجموعهای از متدها (method) را فراهم می کند که امکان پردازش آسان را فراهم می کند. علاوه بر این، پایتون دارای یک کتابخانه گسترده شامل تعداد بسیار زیادی تابع است. از این بستهها میتوان برای ارتباطات شبکه (network communication)، یکپارچهسازی وب، پردازش دادهها و تعاملات سختافزاری استفاده کرد. این تنوع کتابخانهها و توابع باعث میشود که نوشتن برنامهها بسیار سریعتر شود، زیرا بسیاری از روتینهای لازم قبلاً نوشته شدهاند.
در دسترس بودن کتابخانه شخص ثالث:
علاوه بر کتابخانه داخلی گسترده پایتون، توسعهدهندگان میتوانند به بسیاری از کتابخانههای خارجی رایگان دسترسی داشته باشند. این کتابخانههای شخص ثالث با استفاده از مدیریت بسته پیپ (pip) پایتون به راحتی نصب میشوند. بستهها را میتوان از مخزن Python Package Index (PyPI) دانلود کرد. PyPI همچنین به توسعهدهندگان اجازه میدهد تا بستههای خود را منتشر کنند.
منبع باز (open source) و استفاده رایگان:
همه نسخههای پایتون به صورت رایگان تحت مجوز منبع باز در دسترس هستند. حتی میتوان پایتون را تغییر داد و بدون هیچ هزینهای دوباره توزیع کرد. این امر هزینههای توسعه را تا حد زیادی کاهش میدهد. برای اطلاعات بیشتر در مورد مجوز پایتون، به سایت اسناد پایتون (انتهای مقاله) مراجعه کنید.
پایگاه کاربر بزرگ:
پایتون دارای یک جامعه بزرگ، فعال و پرشور از کاربران است. یافتن مطالب آموزشی و سایر منابع، پرسیدن سوال، جستجوی شغل، استخدام توسعهدهندگان اضافی و ملاقات با سایر برنامه نویسان پایتون آسان است. زبان برنامهنویسی پایتون در وبسایت stackoverflow.com یکی از زبانهایی که بیشترین پرسش و پاسخ را دارد.
علاوه بر مزایای گسترده پایتون، این زبان دارای معایبی است که به برخی از آنها میپردازیم.
سرعت:
پایتون مقداری کندتر از زبانهای کارآمدتر مانند C و جاوا است. پایتون تفسیرشده و به صورت پویا تایپ میشود، بنابراین کامپایلر زمان اجرا کارهای زیادی برای انجام دارد. باید دائماً نوع هر متغیر را تأیید کند. این بدان معناست که برای سناریوهایی که سرعت در آنها حیاتی است پایتون بهترین انتخاب نیست.
حافظه فشرده:
پایتون برای کاهش حافظه بهینه نشده است. میتواند ده برابر رم به عنوان برنامهای که به زبانی مقرون به صرفهتر نوشته شده است استفاده کند. با این حال، تا حدی میتوان این موضوع را یک توازن در ازای انعطاف پذیری و سهولت استفاده دانست. علاوه بر این، جمعآوری زباله پایتون نمیتواند تمام منابع دور ریخته شده را فوراً جمعآوری کند که باعث کاهش مقدار حافظه موجود میشود. پایتون انتخاب خوبی برای محیطهای محدود به حافظه نیست.
عدم استفاده گسترده در برنامههای موبایل:
از آنجایی که پایتون نسبت به زبانهای کامپایلری کندتر است و از حافظه زیادی استفاده میکند، پایتون در فضای موبایل دستاورد خاصی نداشته است. برخی از ابزارهای توسعه پایتون برای برنامههای تلفن همراه وجود دارد، اما آنها نسبت به فریمورکهای زبانهای دیگر محدودتر هستند. البته پیشرفتهایی در بعضی از کتابخانهها و فریمورکها برای طراحی اپلیکیشن موبایل با زبان پایتون رخ داده است با این وجود انتخابهای بهتری برای نسبت به پایتون وجود دارد.
فریمورک ها و کتابخانه های معروف پایتون
یکی از دلایل محبوبیت زبان برنامهنویسی پایتون وجود کتابخانه و فریمورکهای مؤثر آن است. متناسب با نوع پروژهای که انجام میدهید باید این کتابخانهها را به پروژه خود اضافه کنید. تعدادی از کتابخانههای محبوب زبان پایتون در اینجا ذکر شدهاند.
NLTK
یک کتابخانه قوی برای پردازش زبان طبیعی (NLP)
pygame
یک مجموعه کراس پلتفرم از ماژولهای پایتون که برای ایجاد بازیهای ویدیویی استفاده میشود. این بسته شامل گرافیکهای کامپیوتری و کتابخانههای صوتی است که برای استفاده با زبان برنامهنویسی پایتون طراحی شدهاند.
opencv
یکی از معروفترین کتابخانهها در زمینه بینایی ماشین.
pillow
این کتابخانه هم قابلیتهای کار با تصاویر را پایتون اضافه میکند.
PyQt5
یک جعبه ابزار برای اتصال پایتون به Qt5 جهت انجام نرمافزار با رابط گرافیکی برای کاربران (GUI).
Django
یک فریمورک عالی برای طراحی وبسایت و اپلیکیشنهای تحت وب. این فریمورک بر اساس معماری سهلایه طراحی شده است. امروزه جنگو به انتخاب اول بسیاری از برنامهنویسان وب تبدیل شده است.
Requests
هدف از این پروژه ارسال سادهتر درخواستهای http است.
BeautifulSoap
یک بسته پایتون برای تجزیه و تحلیل صفحات وب و اسناد XML است. از این بسته برای کارهای وب اسکریپینگ استفاده زیادی میشود.
Scrapy
یک کتابخانه محبوب دیگر برای انجام کارهای وب اسکریپینگ
Numpy
یک کتابخانه ریاضی معروف زبان پایتون برای انجام کارهایی ریاضی و عددی است. از ویژگیهای مهم آن آسان کردن کار با آرایه و ماتریسهای چندبعدی و بزرگ است.
Pandas
کتابخانهای قوی و سریع برای کار با دادهها که معمولا توسط همه محققان علوم داده در زبان پایتون مورد استفاده قرار میگیرد. خواندن و نوشتن دادهها با فرمتهای مختلف و هماهنگی با کتابخانه Numpy از ویژگیهای خوب pandas است.
Matplotlib
یک کتابخانه کاربردی برای رسم نمودار در پایتون. این کتابخانه نیز با Numpy هماهنگ است.
Keras
یکی از معروفترین کتابخانههای زبان پایتون برای کار با شبکههای عصبی مصنوعی. معمولا این کتابخانه به عنوان یک رابط برای کتابخانههای دیگری مانند Tensorflow یا Theano و ... عمل میکند.
Scikit-Learn
پایتون یکی از بهترین زبانها برای کارهای علوم داده به خصوص یادگیری ماشین است و یکی از بهترین کتابخانههای یادگیری ماشین پایتون Scikit-Learn است. ابزارهایی مانند: رگرسیون، دستهبندی، خوشهبندی و سایر روشهای متداول یادگیری ماشین در این کتابخانه پیادهسازی شده است و کاربران میتوانند تنها با چند خط کد ساده به آنها دسترسی داشته باشند.
py2exe
یکی از سادهترین راهها برای تبدیل فایلها و برنامههای پایتون به نسخه اجرایی در ویندوز (exe) استفاده از این کتابخانه است.
PySerial
از ماژول PySerial برای کار کردن با دادههای پورت سریال استفاده میشود. برای دریافت و ارسال داده در پورت سریال این ماژول کمک زیادی به ما میکند.
مراجع
- برچسب ها
0 نظر