اگر به دنبال یادگیری پایتون هستید یا به تازگی پایتون را شروع کرده باشید، ممکن است از خودتان بپرسید که پایتون دقیقا به چه درد میخورد؟! خب، پاسخ دادن به این سوال کمی سخت است، زیرا برنامههای کاربردی بسیار زیادی برای پایتون وجود دارد. ما پاسخ این سوال را برای شما به صورت مختصر و مفید آماده کردهایم! پایتون به طور کلی در ۳ موضوع مهم کاربرد دارد:
- توسعه وب
- علم داده (یادگیری ماشین، تحلیل داده و مصورسازی دادهها)
- اسکریپت نویسی
در ادامه هر کدام از این کاربردهای پایتون را به صورت مفصل توضیح خواهیم داد.
۱- کاربرد پایتون در توسعه وب
فریمورکهای وب که بر پایه پایتون هستند مانند Django و Flask اخیراً به محبوبیت بالایی رسیدهاند. این فریمورکها به شما کمک میکند تا کد سمت سرور (بکاند) ایجاد کنید. این کد بر خلاف کدهای سمت کاربر (فرانتاند) روی سرور اجرا میشود.
💎 برای آشنایی بیشتر با تفاوت های فرانت اند و بک اند به مقالهای با همین نام در سکان اکادمی مراجعه کنید.
چرا به فریمورک وب نیاز داریم؟
اینجا سوال مهمتری مطرح میشود، چرا به فریمورک وب نیاز داریم؟ به این دلیل که فریمورک وب به ما در نوشتن منطق بکاند کمک میکند. منطق بکاند شامل نوشتن فرایندهای وبسایت، تعامل با پایگاه داده و تولید فایلهای HTML است که کاربران در مرورگرهای خود میبینند.
فریمورکهای وب مبتنی بر پایتون زیاد هستند، کدام فریم ورک کاربردی تر است و از کدام استفاده کنم؟ Django و Flask دو تا از محبوبترین فریمورکهای وب پایتون هستند. اگر تازه شروع کردهاید، توصیه میکنم یکی از آنها را انتخاب کنید.
تفاوت Django و Flask چیست؟
Flask سادگی و انعطافپذیری بالایی دارد. ویژگی خاص این فریمورک به شما امکان انتخاب بین نوشتن ساختارهای اصلی یا استفاده از کتابخانههای موجود را میدهد. اما Django یک پکیج کامل ارائه میکند. شما یک پنل مدیریت، رابطهای پایگاه داده، یک ORM و ساختار دایرکتوری برای برنامهها و پروژههای خود را در اختیار خواهید داشت.
کدام فریم ورک پایتون کاربردی تر است؟ کدام را انتخاب کنم؟
- Flask را انتخاب کنید اگر روی یادگیری تمرکز کردهاید، یا اگر میخواهید کنترل بیشتری در مورد مؤلفههایی که باید استفاده کنید مانند پایگاه داده و چگونگی تعامل با آن داشته باشید.
- Django را انتخاب کنید اگر روی محصول نهایی تمرکز کردهاید. به خصوص اگر روی یک برنامه کاربردی ساده مانند یک سایت خبری، یک فروشگاه آنلاین یا وبلاگ کار میکنید و یک مسیر مشخص و واضح برای انجام کارهایتان وجود دارد.
به عبارت دیگر، اگر مبتدی هستید، Flask احتمالاً انتخاب بهتری است زیرا جزییات کمتری دارد. همچنین اگر میخواهید پروژه را کاملاً اختصاصی و سفارشی ایجاد کنید، Flask انتخاب بهتری است. از سوی دیگر، اگر به دنبال ساختن یک پروژه مشخص و با برنامه از قبل تهیه شده هستید، Django به شما کمک میکند سریعتر به پاسخ برسید.
خب، بریم سر موضوع بعدی!
۲- کاربرد پایتون در علم داده (دیتاساینس)
برای آنکه بدانید چرا پایتون در علم داده کاربرد دارد، اول باید بدانید یادگیری ماشین چیست؟ من فکر میکنم بهترین راه برای توضیح اینکه یادگیری ماشین چیست، ارائه یک مثال ساده است. فرض کنید میخواهید برنامهای ایجاد کنید که به طور خودکار آنچه را در یک عکس است تشخیص دهد. بنابراین، با توجه به تصویر زیر (تصویر 1)، میخواهید برنامه شما تشخیص دهد که این تصویر یک سگ است.
با توجه به مورد دیگر در تصویر زیر (تصویر 2)، میخواهید برنامه شما تشخیص دهد که یک میز است.
ممکن است فکر کنید که نوشتن برنامهای برای تشخیص موارد فوق ساده است. میتوانید کدی بنویسید که اگر تعداد زیادی پیکسل قهوهای روشن در تصویر وجود داشته باشد، بگوید که تصویر یک سگ است. یا شاید، قطعه کدی برای تشخیص لبهها را در تصویر بنویسید. سپس بگویید اگر لبههای مستقیم زیادی وجود دارد، پس تصویر داده شده یک میز است. با این حال، این نوع رویکرد فقط برای تصویرهای نشان داده شده مناسب است و برای تصاویر بعدی نیاز به کدنویسی مجدد دارید. مثلاً اگر یک سگ سفید در تصویر بدون موهای قهوهای وجود داشته باشد چطور؟ اگر تصویر فقط قسمتهای گرد جدول را نشان دهد چطور؟ اینجاست که یادگیری ماشین به کمک شما میآید!
یادگیری ماشین الگوریتمی را پیادهسازی میکند که به طور خودکار یک الگو را تشخیص میدهد. میتوانید مثلاً ۱۰۰۰ عکس از یک سگ و ۱۰۰۰ عکس از یک جدول را به یک الگوریتم یادگیری ماشین بدهید. سپس، تفاوت بین سگ و میز را یاد میگیرد. وقتی یک عکس جدید از یک سگ یا یک میز به آن میدهید، میتواند تشخیص دهد تصویر نشان دهنده چیست.
این روش تا حدودی شبیه نحوه یادگیری چیزهای جدید توسط یک کودک است. چگونه یک کودک یاد میگیرد که یک چیز شبیه سگ است و چیز دیگر مانند یک میز؟ احتمالا از دیدن نمونههای زیاد! شما مستقیم به کودک نمیگویید: "اگر چیزی خزدار است و موهای قهوهای روشن دارد، پس احتمالاً سگ است." فقط میگویید: «این یک سگ است. این هم سگه و این یک میز است. آن یکی هم یک میز است.» الگوریتمهای یادگیری ماشین تقریباً به همین صورت عمل میکنند. از همین ایده میتوان برای ساخت سیستمهای زیر استفاده کرد:
- سیستمهای توصیهگر (مانند سیستمهایی که وقتی چیزی انتخاب میکنید، موارد مشابه را به شما پیشنهاد میدهد. مثل یوتیوب، آمازون یا نتفلیکس – یا موارد داخلی مثل دیجیکالا، آپارات یا کافه بازار)
- تشخیص چهره
- تشخیص صدا
الگوریتمهای معروف یادگیری ماشین که ممکن است درباره آنها شنیده باشید عبارتند از:
- شبکههای عصبی
- یادگیری عمیق
- SVM (ماشینهای بردار پشتیبان)
- Random forest
شما میتوانید هر یک از الگوریتمهای را بالا برای حل مسئله برچسبگذاری عکس که قبلا توضیح دادیم استفاده کنید.
💎 آیا می دانید چرا پایتون و یادگیری ماشین یک روح در دو بدن هستند؟
کاربرد پایتون در یادگیری ماشین
کتابخانهها و فریمورکهای یادگیری ماشین محبوبی برای پایتون وجود دارد. دو مورد از محبوبترین آنها scikit-learn و TensorFlow هستند. scikit-learn محبوبترین الگوریتمهای یادگیری ماشین را ارائه میکند. که برخی از آنها را در بالا ذکر کردیم. TensorFlow یک کتابخانه پیشرفتهتر است که به شما امکان میدهد الگوریتمهای یادگیری ماشین سفارشی بسازید. اگر به تازگی یادگیری ماشین را شروع کردید، توصیه میکنم ابتدا با scikit-learn شروع کنید. اما اگر دنبال بهبود کارآیی برنامه هستید، من TensorFlow را پیشنهاد خواهم کرد.
چگونه یادگیری ماشین را شروع کنم؟
برای درک اصول یادگیری ماشین، من دوره یادگیری ماشین استنفورد یا کلتک را توصیه میکنم. توجه داشته باشید که برای درک برخی از مطالب آن به دانش اولیه حساب دیفرانسیل و انتگرال و جبر خطی نیاز دارید. بعد از آن کافیست آنچه که از این دورهها آموختهاید با Kaggle تمرین کنید. Kaggle وب سایتی است که در آن برنامهنویسان برای نوشتن بهترین الگوریتم یادگیری ماشین با هم رقابت میکنند. همچنین آموزشهای خوبی برای مبتدیان دارد. به طور خلاصه برای متخصص شدن در مبحث یادگیری ماشین، بهتر است مسیر یادگیری خود را در سه مرحله طبقهبندی کنید:
- یادگیری زبان پایتون و تسلط به کتابخانههای Numpy، Pandas و همچنین مطالعه در خصوص تئوری یادگیری ماشین
- تسلط یافتن روی کتابخانههای Sikit-learn، keras و Tenserflow
- یادگیری نحوه کار با سرویسهای ابری مثل AWS، Google Cloud یا Microsoft Azure
💎 پیشنهاد میکنیم برای شروع یادگیری ماشین مقالهی چگونه با کارآموزی، یادگیری ماشین را شروع کنیم؟ را مرور کنید.
کاربرد پایتون برای تحلیل و مصورسازی دادهها در علم داده
فرض کنید برای شرکتی کار میکنید که برخی از محصولات را به صورت آنلاین میفروشد. به عنوان یک تحلیلگر داده، ممکن است یک نمودار میلهای مانند این رسم کنید.
از این نمودار میتوان فهمید که مردان بیش از ۴۰۰ دستگاه و زنان نیز حدود ۳۵۰ دستگاه از این محصول را در یکشنبه خریداری کردهاند. به عنوان یک تحلیلگر داده، باید برای تفاوت موجود در این نمودار توضیحاتی ارائه دهید. یکی از توضیحات احتمالی این است که این محصول در بین مردان محبوبتر از زنان است. توضیح احتمالی دیگر ممکن است این باشد که حجم نمونه خیلی کوچک است و این تفاوت در خرید بین زنان و مردان شاید اتفاقی باشد. توضیح احتمالی دیگر ممکن است این باشد که مردان به دلایلی فقط در روز یکشنبه تمایل بیشتری به خرید این محصول دارند. برای درک اینکه کدام یک از این توضیحات صحیح است، میتوانید نمودار دیگری مانند این رسم کنید.
به جای نمایش دادهها فقط برای یکشنبه، ما به دادههای یک هفته کامل نگاه میکنیم. همانطور که میبینید، در نمودار دوم، میبینیم که این تفاوت در روزهای مختلف ثابت است. از این تحلیل کوچک، ممکن است به این نتیجه برسید که قانع کنندهترین توضیح برای تفاوت موجود این است که محصول در بین مردان محبوبتر از زنان است. حالا اگر به جای آن نموداری مانند این ببینید، چه؟
چه چیزی تفاوت یکشنبه را توضیح میدهد؟ شاید بگویید، مردان بنا به دلایلی تمایل به خرید بیشتر این محصول فقط در روز یکشنبه دارند. یا باز هم نتیجه بگیرید که این اعداد به صورت کاملا اتفاقی ایجاد شده است. این مثال ساده نشان میدهد که تحلیل داده در دنیای واقعی چگونه انجام میشود. تحلیل داده که من در زمان کار در گوگل و مایکروسافت انجام دادم بسیار شبیه به این مثال بود (فقط پیچیدهتر).
Matplotlib چیست؟ seaborn چیست؟
یکی از محبوبترین کتابخانهها برای تجسم داده، Matplotlib است. Matplotlib یک کتابخانه خوب برای شروع کار با پایتون است زیرا هم ساده است و هم برخی از کتابخانههای دیگر مانند seaborn بر اساس آن ایجاد شدهاند. بنابراین، یادگیری Matplotlib به شما در یادگیری کتابخانههای دیگر کمک میکند.
چگونه باید تحلیل / مصورسازی را با پایتون یاد بگیرم؟
ابتدا باید اصول تحلیل و مصورسازی دادهها را بیاموزید. پس از یادگیری اصول تحلیل و مصورسازی دادهها، یادگیری اصول آمار نیز مفید خواهد بود.
عنوان تبلیغ: آموزش مقدمهای بر آمار در پایتون
۳- کاربرد پایتون در اسکریپتنویسی
اسکریپتنویسی به نوشتن برنامههای کوچکی اشاره دارد که برای خودکارسازی کارهای ساده طراحی شدهاند.
اجازه دهید برای شما یک مثال بزنم. فرض کنید شرکتی یک سیستم پشتیبانی ایمیل داشته باشد. این سیستم برای پاسخگویی به سؤالاتی که مشتریان از طریق ایمیل استفاده میشود. یکی از نیروهای شرکت، وظیفه شمارش تعداد ایمیلهای حاوی کلمات کلیدی خاص را دارد تا بتواند ایمیلهای دریافتی را تجزیه و تحلیل کند. این کار را میتوان کاملاً به صورت دستی نیز انجام داد، اما در عوض، یک اسکریپت ساده برای خودکار کردن این کار میتوان نوشت.
پایتون برای این نوع کارها مناسب و کاربردی است، زیرا syntax نسبتا سادهای دارد و نوشتن آن آسان است. همچنین به سرعت میتوانید برنامههای کوچک را بنویسید و آزمایش کنید.
💎 برای آگاهی بیشتر در مورد مزیتهای پایتون، میتوانید مقالهی "۵ دلیلی که شما را مجاب میکند Python انتخاب اول شما باید باشد" را مرور کنید.
در مورد برنامههای کاربردی embedded چطور؟
پایتون با Rasberry Pi کار میکند که یک برنامه محبوب در بین علاقهمندان سختافزار است.
در مورد بازی چطور؟
پایتون در بازی سازی نیز کاربرد دارد. میتوانید از کتابخانهای به نام PyGame برای توسعه بازیها استفاده کنید، شاید محبوبترین موتور بازی موجود نباشد، اما میتوانید از آن برای ساخت یک بازی ساده استفاده کنید، اما اگر در مورد توسعه بازی جدی هستید و قصد انجام پروژههای بزرگ را دارید، پایتون را توصیه نمیکنم. در عوض، من شروع به کار با یونیتی (Unity) و سی شارپ (#C) را توصیه میکنم، که یکی از محبوبترین موتورهای بازی است و به شما امکان میدهد یک بازی برای بسیاری از پلتفرمها از جمله مک، ویندوز، iOS و اندروید بسازید.
در مورد برنامههای دسکتاپ چطور؟
کاربرد پایتون در برنامههای دسکتاپ را نیز نمیتوان نادیده گرفت. میتوانید با پایتون و Tkinter برنامه دسکتاپ بسازید، اما محبوبترین گزینه نیست. در عوض، زبانهایی مانند جاوا، #C و ++C برای این کار محبوبتر هستند. اخیراً برخی از شرکتها شروع به استفاده از جاوا اسکریپت برای ایجاد برنامههای دسکتاپ کردهاند. به عنوان مثال، برنامه دسکتاپ Slack با فریمورکی به نام Electron ساخته شده است که به شما امکان میدهد برنامههای دسکتاپ را با جاوا اسکریپت بسازید. به شخصه، اگر برنامه دسکتاپ میساختم، جاوا اسکریپت را انتخاب میکردم. جاوا اسکریپت به شما امکان استفاده مجدد از کد را میدهد. با این حال، برنامههای دسکتاپ یک بحث تخصصی جداگانه است که وارد شدن به آن نیاز به محتوای تخصصی دیگری است. برای یادگیری جاوا اسریپت، این دوره را در آکادمی سکان آکادمی جستجو کنید.
پایتون ۳ یا پایتون ۲، کدام نسخه را انتخاب کنم؟
من پایتون ۳ را توصیه میکنم زیرا مدرنتر است و الان محبوبیت بیشتری دارد.
حالا که با کاربردها و مزایای پایتون آشنا شدید، میتوانید مسیر شغلی خود را با آگاهی بیشتر انتخاب کنید. اما مطمئن باشید از انتخاب پایتون پشیمان نخواهید شد.
عنوان تبلیغ: خیلی سریع سادهترین زبان برنامهنویسی رو یاد بگیر!