اگر به فکر یادگیری پایتون هستید یا اخیرا یادگیری آن را شروع کرده اید، ممکن است از خود بپرسید: پایتون دقیقا به چه منظوری استفاده می شود؟ این سوالی پیچیده است، چرا که کاربردهای پایتون بسیار متنوع اند. اما با گذشت زمان، ٣ کاربرد اصلی پایتون پدیدار شده است:
• توسعه وب
• علوم داده : شامل یادگیری ماشین، تجزیه و تحلیل داده ها و مصورسازی اطلاعات
• اسکریپت نویسی
چهارچوب های وب که براساس پایتون بنا شده اند، اخیرا برای توسعه وب بسیار محبوب گشته اند. این چهارچوب های وب به شما کمک می کنند تا کد سمت سرور (کد بک-اند (به یادداشت پایان مقاله رجوع کنید)) را در پایتون ایجاد کنید. این کدی است روی سرور شما اجرا می شود.
چرا به یک چهارچوب وب نیاز داریم؟
به دلیل این که چهارچوب وب به ایجاد “منطق سایت” کمک می کند. این شامل نقشه برداری از URL های مختلف پرداختن به پایگاه های داده و تولید پرونده های HTML که کاربران در مرورگرهای خود مشاهده می کنند، می شود.
از کدام چهارچوب پایتون باید استفاده کنیم؟
Django و Flask دو مورد از محبوب ترین چهارچوب های وب پایتون هستند. اگر تازه کار را شروع کرده اید توصیه می کنیم از یکی از این دو استفاده کنید.
تفاوت بین Django و Flask چیست؟
مهم ترین تفاوت:
Flask سادگی و انعطاف پذیری را فراهم می کند. (به شما امکان تصمیم گیری در چگونگی پیاده سازی کارها را می دهد.)
Django تجربه ای فراگیر را در اختیار شما قرار می دهد: شما یک پنل ادمین، رابط های پایگاه داده، یک ORM و ساختار دایرکتوری برای برنامه ها و پروژه های خود دریافت می کنید.
اگر روی تجربه و فرصت های یادگیری متمرکز شده اید، یا اگر می خواهید کنترل بیشتری در مورد اجزای مورد استفاده داشته باشید (مثلا این که از کدام پایگاه داده می خواهید استفاده کنید و چگونه می خواهید با آنها تعامل داشته باشید)، Flask را انتخاب کنید. اما اگر روی محصول نهایی متمرکز هستید، مانند زمانی که در حال کار روی یک سایت خبری، یک فروشگاه الکترونیکی یا یک وبلاگ هستید و می خواهید همیشه یک روش مشخص و واضح برای انجام کارها وجود داشته باشد Django را انتخاب کنید.
به عبارت دیگر، اگر مبتدی هستید احتمالا Flask انتخاب بهتری است زیرا جزئیات کمتری دارد. همچنین اگر می خواهید سفارشی سازی بیشتری داشته باشید، Flask انتخاب بهتری است. از طرف دیگر، اگر به دنبال ساختن مستقیم چیزی هستید، Django به شما امکان می دهد سریع تر به آن را محقق کنید.
قبل از شروع، بیایید بررسی کنیم که یادگیری ماشین چیست. بهترین راه برای توضیح یادگیری ماشین این است که از یک مثال ساده استفاده کنیم. فرض کنید می خواهید برنامه ای بسازید که بتواند به طور خودکار آنچه را که در یک تصویر وجود دارد، تشخیص دهد.
ممکن است فکر کنید می توان این کار را به راحتی با نوشتن چند خط کد انجام داد. به عنوان مثال، اگر پیکسل های قهوه ای روشن زیادی در تصویر وجود داشته باشد، می توان گفت که این سگ است. یا اگر لبه های صاف در تصویر وجود داشت، نیمکت است. اما این نوع رویکرد نمی تواند دقیق باشد. اگر یک سگ سفید در تصویر وجود داشته باشد چه می شود؟ اگر تصویر فقط قسمتهای گرد نیمکت را نشان دهد چه می شود؟
این جاست که یادگیری ماشین وارد عمل می شود.
می توانید هزار تصویر از سگ و هزار تصویر از نیمکت به الگوریتم یادگیری ماشین بدهید. آن گاه، تفاوت بین یک سگ و یک نیمکت را می آموزد و هنگامی که تصویر جدیدی از یک سگ یا یک نیمکت ارائه می دهید، می تواند تفاوت آن ها را تشخیص دهد.
این روند بی شباهت به نحوه یادگیری یک کودک نیست. یک کودک چگونه تفاوت یک سگ و یک نیمکت را می آموزد؟ احتمالا با استفاده از یک دسته مثال. شما به صراحت به کودک نمی گویید،”اگر چیزی خزدار است و موهای قهوه ای روشن دارد ، احتمالا یک سگ است.” فقط می گویید ، “این یک سگ است. و آن یک نیمکت است.”
الگوریتم های یادگیری ماشین نیز تقریبا به همین روش کار می کنند.
شما می توانید همان ایده را برای موارد زیر اعمال کنید:
سیستم های توصیه گر(YouTube ، Amazon و Netflix)، تشخیص چهره، تشخیص صدا
الگوریتم های یادگیری ماشین متداول که شاید درباره آن ها شنیده باشید عبارتند از:
• شبکه های عصبی
• یادگیری عمیق
• ماشین های بردار پشتیبان
• جنگل های تصادفی
برای حل مسئله برچسب زدن به تصویر می توانید از هر یک از الگوریتم های فوق استفاده کنید.
کتابخانه ها و چهارچوب های یادگیری ماشین برای پایتون وجود دارد. دو مورد از محبوب ترین آن ها scikit-Learn و TensorFlow هستند. اگر تازه یک پروژه یادگیری ماشین را شروع کرده اید ، توصیه می کنم ابتدا با scikit-Learn شروع کنید. اما اگر کاری با بهره وری بالا را آغاز کرده اید، توصیه می کنم که از TensorFlow استفاده کنید.
برای درک بهتر این موضوع از یک مثال ساده استفاده می کنیم. فرض کنید شما در شرکتی کار می کنید که محصولات را به صورت آنلاین می فروشند. به عنوان یک تحلیل گر داده، شما می توانید نموداری مانند نمودار زیر ترسیم کنید.
از این نمودار می توان برداشت کرد که آقایان بیش از ۴٠٠ دستگاه، و خانم ها حدود ٣۵٠ دستگاه از این محصول را در یک روز مشخص (یکشنبه) خریداری کرده اند. به عنوان یک تحلیل گر داده ممکن است برای این تفاوت توضیحات احتمالی ارائه دهید. یکی از توضیحات بارز احتمالی این است که این محصول در مردان از محبوبیت بیشتری برخوردار است. یک توضیح احتمالی دیگر این است که مردان به دلایلی بیشتر تمایل به خرید این محصول در روز یکشنبه دارند. برای درک این که کدام یک از این توضیحات صحیح است، می توانید نمودار دیگری مانند این نمودار را ترسیم کنید.
به جای این که داده ها را فقط برای یکشنبه نشان دهیم، ما به مدت یک هفته به تحلیل داده ها می پردازیم. همان طور که می بینید، این تفاوت در طول روزهای مختلف ثابت است. از این تحلیل ساده، می توان نتیجه گرفت که قانع کننده ترین توضیح برای این تفاوت این است که این محصول صرفا در بین مردان محبوب تر از زنان است.
از طرف دیگر ، اگر نمودار زیر را مشاهده می کردید نتیجه چه تفاوتی داشت؟
شاید بگویید، آقایان بنا به دلایلی تمایل بیشتری به خرید این محصول در روز یکشنبه داشته اند. یا شاید امری کاملا تصادفی بوده است.
این یک نمونه ساده از تجزیه و تحلیل داده ها در دنیای واقعی است.
یکی از محبوب ترین کتابخانه ها برای مصورسازی اطلاعات، Matplotlib است.
این یک کتابخانه خوب برای شروع کار است زیرا:
شروع کار با آن آسان است
برخی از کتابخانه های دیگر مانند seaborn بر اساس آن بنا شده اند. بنابراین، یادگیری Matplotlib به شما در یادگیری سایر کتابخانه ها کمک خواهد کرد.
اسکریپت نویسی چیست؟
اسکریپت نویسی معمولا به نوشتن برنامه های کوچک اشاره دارد که به منظور اتوماسیون کارهای ساده طراحی شده اند. پایتون برای این نوع کارها مناسب است زیرا دارایترکیبی نسبتا ساده بوده و نوشتن آن بسیار آسان است. همچنین نوشتن برنامه های کوچک با آن و آزمایش آن سریع است.
در مورد توسعه بازی چطور؟
می توانید از کتابخانه ای به نام PyGame برای توسعه بازی ها استفاده کنید؛ اما این متداول ترین کتابخانه نیست. شما می توانید از آن برای ساختن یک پروژه سرگرمی استفاده کنید، اما اگر در مورد توسعه بازی جدی هستید، این کتابخانه را توصیه نمی کنیم. در عوض Unity که یکی از محبوب ترین موتورهای بازی است را پیشنهاد می کنیم. Unity این امکان را به شما می دهد تا برای بسیاری از سیستم عامل ها، از جمله Mac ، Windows ، iOS و Android ، بازی ایجاد کنید.
در مورد برنامه های دسک تاپ چطور؟
می توانید از Tkinter استفاده کنید ، اما به نظر نمی رسد که بهترین انتخاب باشد. درعوض، زبان هایی مانند Java ، C # و C ++ برای این امر محبوبیت بیشتری دارند.
فرض کنید می خواهید برنامه ای مانند اینستاگرام بسازید. باید برای هر نوع دستگاهی که می خواهید پشتیبانی کنید، کد فرانت-اند ایجاد کنید. به عنوان مثال:
Swift برای iOS
Java برای Android
JavaScript برای مرورگرهای وب
هر مجموعه کد بر روی هر نوع دستگاه / مرورگر اجرا می شود. این مجموعه کد است که تعیین می کند چیدمان برنامه چگونه باشد و وقتی روی دکمه کلیک می شود ظاهر آن ها چه تغییر کند و …. شما همچنین به توانایی ذخیره اطلاعات و عکس های کاربران نیاز دارید؛ و باید آن ها را روی سرور خود (نه فقط در دستگاه های کاربران) ذخیره کنید.
اینجاست که کد بک-اند(کد سمت سرور) وارد می شود. برای انجام کارهایی مانند پیگیریاین که چه کسانی یکدیگر را دنبال می کنند،فشرده سازی عکس ها، پیشنهاد صفحاتی که علایق کاربران را در بر می گیرد و غیره.
به بیان ساده این تفاوت بین کد بک-اند و کد فرانت اند است.
به هر حال ،برنامه نویسی پایتون تنها انتخاب برای نوشتن کد بک-اند نیست. گزینه های محبوب دیگری نیز از جمله Node.js وجود دارد که مبتنی بر JavaScript است.