پایتون (Python) یک زبان برنامهنویسی شیءگرا، تفسیری، سطح بالا، و همه منظوره است، که Guido van Rossum آن را طراحی کردهاست، و اولین بار در سال ۱۹۹۱ منتشر شدهاست. فلسفه اصلی طراحی پایتون «خوانایی بالای کد» است و نویسههای فاصله خالی در آن معنادار هستند و مکرر استفاده میشوند. ساختار زبانی و دیدگاه شیءگرا در پایتون به گونهای طراحی شدهاست که به برنامهنویس امکان نوشتن کد منطقی و واضح (بدون ابهام) را برای پروژههای کوچک و بزرگ میدهد.
«زبان برنامه نویسی پایتون» (Python Programming Language)، زبانی با یادگیری آسان محسوب میشود و از همین رو بسیاری از برنامهنویسهای تازهکار آن را به عنوان اولین زبان برنامهنویسی خود برمیگزینند، زیرا پایتون به عنوان یک «زبان همهمنظوره» (General-Purpose Language) ساخته و توسعه داده شده و محدود به توسعه نوع خاصی از نرمافزارها نیست. به بیان دیگر، میتوان از آن برای هر کاری، از «تحلیل داده» (Data Analysis) گرفته تا ساخت بازیهای کامپیوتری استفاده کرد. بنابراین، یادگیری پایتون بسیار حائز اهمیت است.
همچنین، پایتون در میان جوامع علمی از محبوبیت فوقالعادهای برخوردار است، زیرا از آن برای محاسبه معادلات پیچیده و تحلیلهای داده استفاده میشود. در ادامه به طور دقیقتر به چیستی این زبان، دلایل محبوبیت، ویژگیها، مزایا و معایب، کاربردها، نسخههای گوناگون و چگونگی انتخاب از میان آنها، روش راهاندازی محیط پایتون، چیستی «جنگو» (Django)، تفاوتهای پایتون با دیگر زبانهای برنامهنویسی، جمعیت برنامهنویسهای پایتون در جهان، وضعیت اشتغال برنامهنویسهای پایتون در ایران، شش پروژه برنامهنویسی پایتون برای مبتدیان، مزایای یادگیری و روش یادگیری این زبان پرداخته خواهد شد.
زبان برنامه نویسی پایتون چیست؟
به بیان فنی، «پایتون» (Python) یک زبان برنامهنویسی «شیگرا» (Object-Oriented) و «سطح بالا» (High-Level) با «معناشناسی» (Semantic) پویای یکپارچه شده برای وب و ساخت و توسعه «نرمافزارهای کاربردی» (Application software) است. این زبان برنامهنویسی در زمینه «توسعه سریع نرمافزارهای کاربردی» (Rapid Application Development) دارای جذابیت بالایی محسوب میشود زیرا دارای «انواع پویا» (Dynamic Types) و «انقیاددهنده پویا» (Dynamic Binding) است.
پایتون، زبان برنامهنویسی نسبتا سادهای محسوب میشود که یادگیری آن به دلیل دارا بودن «نحو» یکتایی که بر قابلیت خوانایی تمرکز و تاکید دارد آسان است. خواندن و ترجمه کدهای نوشته شده به زبان برنامه نویسی پایتون نسبت به دیگر زبانها برای «توسعهدهندگان» (Developers) سادهتر محسوب میشود. این موضوع به نوبه خود هزینههای نگهداری و توسعه برنامههای نوشته شده به این زبان را کاهش میدهد زیرا امکان همکاری تیمها بدون مواجهه با موانع زبانی و وجود تجربیات کاری متفاوت در میان اعضای تیم را به دست میدهد.
علاوه بر این، زبان برنامه نویسی پایتون از «ماژولها» (modules) و «بستهها» (packages) استفاده میکند، بدین معنا که برنامههای این زبان قابل طراحی به سبک «ماژولار» (modular) هستند و کدهای نوشته شده در یک پروژه در پروژههای گوناگون دیگر نیز قابل استفاده مجدد محسوب میشوند.
هنگامی که کاربری ماژول یا بسته مورد نیاز خود را توسعه داد، خودش یا دیگر علاقمندان (در صورتی که کد در اختیار عموم قرار بگیرد) میتوانند آن را برای استفاده در دیگر پروژهها گسترش دهند. «ایمپورت» (Import) و «اکسپورت» (Export) کردن این ماژولها نیز کار آسانی است.
یکی از قابل توجهترین مزایای زبان برنامه نویسی پایتون آن است که «کتابخانه» (Library) و «مفسر استاندارد» (Standard Interpreter) آن، هم به صورت «دودویی» (binary) و هم «منبع» (source) به رایگان در دسترس همگان قرار دارند. در پایتون هیچ انحصاری وجود ندارد، زیرا همه ابزارهای لازم برای آن در کلیه «پلتفرمهای اصلی» (Main Platforms) موجود هستند. بنابراین، پایتون برای توسعهدهندگانی که نمیخواهند دغدغه هزینههای بالای توسعه را داشته باشند گزینهای جذاب به شمار میآید.
برای افرادی که تصور میکنند مطالبی که بالاتر پیرامون زبان برنامه نویسی پایتون ارائه شد فراتر از دانش آنها است جای نگرانی وجود ندارد. کلیه جزئیات لازم در این رابطه در ادامه همین مطلب به طور کامل و به بیان ساده تشریح خواهد شد. آنچه افراد برای ادامه مطالعه این مطلب نیاز دارند بدانند این است که پایتون یک زبان برنامهنویسی برای توسعه نرمافزارهای وب و نرمافزارهای کاربردی از جمله برنامههای موبایل محسوب میشود، یادگیری آن آسان و ابزارهای اساسی آن به رایگان در دسترس است. این امر موجب میشود که زبان برنامه نویسی پایتون تقریبا برای همه افراد در دسترس و قابل استفاده باشد. افرادی که زمان کافی را به یادگیری زبان برنامه نویسی پایتون تخصیص دهند، میتوانند برنامههای جالبی با این زبان خلق کنند.
دلایل محبوبیت پایتون چه هستند؟
میانگین درآمد برنامهنویسهای پایتون ممکن است بالا باشد، اما این موضوع نمیتواند چرایی اینکه بسیاری از افراد آن را به عنوان زبان برنامهنویسی محبوب خود انتخاب میکنند توضیح دهد. در ادامه دلایل محبوبیت زبان برنامه نویسی پایتون به طور جزئیتر مورد بررسی قرار خواهد گرفت.
۱. غولهای فناوری دنیا این زبان را دوست دارند: «گوگل» (Google)، «یوتیوب» (YouTube)، «فیسبوک» (Facebook)، «ناسا» (NASA)، «دراپباکس» (Dropbox)، «یاهو» (Yahoo)، «موزیلا» (Mozilla)، «کورا» (Quora)، «اینستاگرام» (Instagram)، «ردیت» (Reddit) و IBM تنها برخی از نامهای بزرگ فناوری به شمار میآیند که از زبان برنامه نویسی پایتون به طور گسترده برای اهداف گوناگون استفاده میکنند و به طور مستمر به دنبال استخدام مهندسهای پایتون هستند. (آمارهای ارائه شده در نمودارهای آتی مربوط به سال ۲۰۱۸ است.)
گوگل از زبان برنامه نویسی پایتون برای هر کاری از پیادهسازی الگوریتمهای «هوش مصنوعی» (Artificial Intelligence) گرفته تا «موتور اجرای برنامه گوگل» (App Engine Cloud) استفاده میکند. این در حالیست که ۹۹/۹٪ کد دراپباکس شامل «بکاند سرور» (server backend)، کلاینت دسکتاپ، «منطق کنترلگر وبسایت» (website controller logic)، «بَکاند رابط برنامهنویسی کاربردی» (API backend) و ابزارهای تحلیلی آن به زبان برنامه نویسی پایتون نوشته شدهاند.
۲. به طور گسترده در یادگیری ماشین مورد استفاده قرار میگیرد: با رشد علم داده، محبوبیت زبان برنامه نویسی پایتون به عنوان یک زبان علمی اوج گرفت. کتابخانههای «یادگیری ماشین» (Machine Learning) بسیار زیادی به زبان برنامه نویسی پایتون نوشته شدهاند. در عین حال، ابزارهای زیادی نیز با فراهم آوردن امکان استفاده از زبان برنامه نویسی پایتون، انجام پروژههای یادگیری ماشین را آسانتر میسازند.
۳. مناسب بودن برای مبتدیها: زبان برنامه نویسی پایتون انتخاب خیلی خوبی برای برنامهنویسهای مبتدی محسوب میشود زیرا ساده است و نحو انعطافپذیری دارد. با زبان برنامه نویسی پایتون، میتوان به سرعت و سادگی برنامههای قابل استفادهای ساخت. احساس دستاورد داشتن سریع فاکتور بسیار مهمی در یادگیری برنامهنویسی است.
۴. پایتون میتواند تنها زبان مورد نیاز کاربر باشد: از آنجا که پایتون یک زبان برنامهنویسی همه منظوره است، کاربر میتواند تقریبا برای کلیه پروژهها از آن استفاده کند. مطابق گزارش «Skill Up 2018: Developer Skills»، پایتون زبان برنامهنویسی اسکریپتی است که به همه از «کارشناسان تست نفوذ» (pentesters) گرفته تا مهندسان «دواُپس» (DevOps engineers) درجه قابل توجهی از کنترل کردن را میدهد و آنها را قادر به حل مسائل گوناگون میسازد. میتوان از زبان برنامه نویسی پایتون برای ساخت وبسایتها، توسعه «واسط گرافیکی کاربر» (GUI | Graphical User Interface) و تحلیل داده استفاده کرد. این یعنی پایتون قابلیتهای زبانهای برنامهنویسی گوناگون را در یکجا گرد هم آورده و در واقع آنچه خوبان همه دارند زبان برنامه نویسی پایتون به تنهایی دارد و بنابراین میتواند تنها زبانی باشد که یک برنامهنویس برای کلیه وظایف لازم در حین توسعه به آن نیاز دارد.
ویژگیهای پایتون
زبان برنامه نویسی پایتون را اغلب میتوان با زبان «پِرل» (Perl)، «روبی» (Ruby)، «پیاچپی» (PHP) و «جاوا» (Java) مقایسه کرد. این موضوع به دلیل قدرت فوقالعاده پایتون به عنوان یک زبان «شیگرا» است. زبان برنامه نویسی پایتون همچنین دارای ویژگیهای شایان توجهی دیگری است که آن را به زبانی جذاب برای توسعهدهندگان مبدل میکند. برخی از این ویژگیها در ادامه بیان شدهاند.
زبان برنامه نویسی پایتون از «نحو» (syntax) ظریفی استفاده میکند که موجب میشود خوانایی برنامههای نوشته شده به این زبان بالا باشد. این امر به آن دلیل به وقوع میپیوندد که زبان برنامه نویسی پایتون به جای نزدیک بودن به زبانی که کامپیوترها برای خواندن و تفسیر کد استفاده میکنند، یک زبان سطح بالا محسوب میشود که به زبان انسان نزدیک است (به گونهای که انسانها کلمات را در زبان انگلیسی مینویسند نزدیک است). برای مثال، دستور «print» آنچه را به آن داده شود – در زمان اجرا – نمایش میدهد.
پایتون زبانی ساده و استفاده از آن آسان است، بدین معنا که بالا آوردن برنامهها و اجرای آنها راحت خواهد بود. به همین دلیل است که پایتون زبانی ایدهآل برای ساخت پیشنمونه (پروتوتایپ | prototype) و دیگر وظایف برنامهنویسی اد-هاک (اد-هوک | Ad-Hoc) محسوب میشود. این ویژگی برای تعمیر و نگهداری نرمافزار نیز بسیار مفید است.
زبان برنامه نویسی پایتون با «کتابخانههای استاندارد پایتون»، پشتیبانی قابل توجهی را برای انواع وظایف برنامهنویسی مانند «همگامسازی» (syncing) با مرورگرهای وب، جستوجو از طریق متن و ویرایش فایلها ارائه میکند. در اکثر زبانهای برنامهنویسی دیگر، نیاز به ساخت این محتوا از پایه است.
این زبان دارای یک حالت تعاملی است که تست کردن نرمافزار برای تکههای کوتاه کد را آسان میسازد. حتی یک محیط توسعه یکپارچه نیز برای زبان پایتون و همراه با آن ارائه میشود (این ویرایشگر کد به زبان پایتون نوشته شده و همراه با بسته پایتون در سیستمعامل ویندوز و مک نصب میشود). محیط توسعه، راهاندازی را بسیار آسانتر و سریعتر میسازد.
زبان برنامه نویسی پایتون را میتوان با افزودن ماژولهای جدید توسعه داد، حتی اگر این ماژولها در زبان های C یا C++ کامپایل شده باشند. بهتر آنکه این ماژولها را میتوان پس از ساخت به عنوان «میانبُرها» (shortcuts) در پروژههای آتی مورد استفاده قرار دارد.
پایتون در یک برنامه کاربردی قابل «توکار» (Embedding) شدن است. این امر یک رابط قابل برنامهنویسی برای کاربران آن نرمافزار کاربردی فراهم میکند. این ویژگی در شرایطی که کاربر برنامهای برای آموزش کدنویسی میسازد و یا در پروژههایی که نیاز به کار با پایتون در ترمینال است بسیار مفید محسوب میشود.
زبان برنامه نویسی پایتون با گستره وسیعی از کامپیوترها و سیستمهای عامل مانند گنو/لینوکس، ویندوز، MacOS، بسیاری از برندهای یونیکس، OS/2 و بسیاری از دیگر گزینهها سازگار است. علاوه بر این، پایتون از رابط مشابهی در کلیه این پلتفرمها استفاده میکند و این یعنی جابهجایی بین آنها برای کاربر آسان خواهد بود.
پایتون واقعا رایگان است زیرا دانلود یا استفاده از آن هیچ هزینهای ندارد و هیچ هزینه پروانهای (licensing fees) برای آن وجود ندارد. همچنین، این زبان به طور آزادانهای قابل ویرایش و بازتوزیع است، زیرا علارغم آنکه «حق نشر» (کپی رایت | Copyright) دارد، همراه با پروانههای متنباز ارائه میشود.
مزایا و معایب زبان برنامهنویسی پایتون چه هستند؟
شرکتهای نرمافزاری، پایتون را به این دلیل میپسندند که دارای ویژگیهای متنوع و در عین حال نیازمند نوشتن کدهای کمتری است. نزدیک به ۱۴٪ برنامهنویسان از این زبان روی سیستمعاملهایی مانند یونیکس، لینوکس، ویندوز و Mac OS استفاده میکنند. برنامهنویسهای شرکتهای بزرگ از پایتون به دلیل ویژگیهای گوناگون از جمله موارد زیر بهره میبرند:
- تعاملی (Interactive)
- مفسری
- ماژولار (Modular)
- پویا
- شیگرا
- قابل حمل (Portable)
- سطح بالا
- توسعهپذیر در ++C و C
در ادامه مزایا و معایب بهرهگیری از این زبان به طور مشروح بیان شده است.
مزایای پایتون
زبان پایتون دارای کاربردهای متنوعی در شرکتهای توسعه نرمافزار مانند بازیسازی، چارچوبهای وب، برنامههای کاربردی، توسعه زبانی، پیشنمونهسازی، برنامههای طراحی گرافیکی و دیگر موارد است. این موارد موجب شدهاند پایتون جایگاه ویژهای در میان زبانهای برنامهنویسی پیدا کند. در ادامه برخی از مزایای این زبان بر شمرده میشوند.
کتابخانههای پشتیبان گسترده
پایتون دارای کتابخانههای استاندارد بسیاری در زمینههای گوناگون مانند عملیات روی رشتهها، اینترنت، ابزارهای وب سرویس، رابطهای سیستمعامل و پروتکلها است. اغلب وظایف برنامهنویسی که زیاد مورد استفاده قرار میگیرند در پایتون اسکریپتنویسی شدهاند تا تعداد خطوط کد مورد نیاز برای نوشتن یک برنامه کاهش پیدا کند.
یکپارچگی ویژگیها
پایتون «Enterprise Application Integration» را یکپارچه میسازد و توسعه سرویسهای وب را با فراخوانی مولفههای COM یا COBRA افزایش میدهد. این زبان دارای تواناییهای کنترلی قدرتمندی است، زیرا قابلیت فراخوانی مستقیم توسط C++ ،C یا جاوا با «جایتون» (Jython) را دارد. پایتون همچنین میتواند XML و دیگر «زبانهای نشانهگذاری» (Markup Language) را پردازش کند تا روی سیستمعاملهای مدرن از طریق بایت کد مشابهی اجرا شوند.
بهبود بهرهوری برنامهنویسها
زبان برنامهنویسی پایتون دارای کتابخانههای پشتیبان گسترده و طراحی شیگرای تمیزی است که بهرهوری برنامهنویسها را به نسبت کار با زبانهایی مانند VB، «پِرل» (Perl)، جاوا، C++ ،C و C# دو تا ده برابر میکند.
بهرهوری
فرآیندهای یکپارچهسازی قدرتمند، «چارچوب تست واحد» (Unit Testing Framework) و تواناییهای کنترل بهبود یافتهای که پایتون دارد، موجب افزایش سرعت و بهرهوری برنامههای کاربردی میشود.
معایب پایتون
پایتون دارای مزیتهای بسیار زیاد و متنوعی است و برنامهنویسان این زبان را نسبت به دیگر زبانها به دلیل سادگی یادگیری و کد نویسی ترجیح میدهند. اگرچه این زبان هنوز جایگاه خود را در برخی حوزههای پردازش کامپیوتری مانند «Enterprise Development Shops» به دست نیاورده است. بنابراین، ممکن است پایتون قادر به حل برخی از راهکارهای سازمانی نبوده و با محدودیتهایی مواجه باشد که برخی از آنها در ادامه ذکر شدهاند.
دشواری در استفاده از دیگر زبانها
عاشقان پایتون که با ویژگیها و کتابخانههای گسترده این زبان اُنس گرفتهاند ممکن است در کار یا یادگیری دیگر زبانهای برنامهنویسی دچار مشکل شوند. متخصصان پایتون ممکن است اعلان مقادیر یا نوع متغیرها و الزام به افزودن آکولاد یا «نقطه ویرگول» (semi colons) در بخشهایی از کد را دشوار و بیدلیل بپندارند (چون انجام چنین کارهایی در پایتون نیاز نیست).
ضعیف در پردازش موبایل
پایتون جایگاه خود را در بسیاری از سکوهای دسکتاپ و سرور به دست آورده و تثبیت کرده، اما در پردازش موبایل ضعیف به نظر میرسد. به همین دلیل است که برنامههای کاربردی موبایل کمی با استفاده از آن ساخته میشوند. از جمله برنامههای موبایل ساخته شده با پایتون میتوان به Carbonnelle اشاره کرد.
کاهش سرعت
پایتون به جای استفاده از کامپایلر با بهرهگیری از یک مفسر اجرا میشود و این امر میتواند موجب کاهش سرعت آن شود. از سوی دیگر، پایتون برای بسیاری از کاربردهای وب سریع به شمار میآید.
خطاهای زمان اجرا (Runtime Errors)
زبان پایتون به طور پویایی تایپ میشود، بنابراین دارای محدودیتهای طراحی زیادی است که توسط برخی توسعهدهندگان این زبان (+) بیان شدهاند. حتی مشاهده شده که این زبان نیاز به زمان تست بیشتری دارد و هنگامی که برنامهها در نهایت اجرا میشوند خطاهایی بروز میکنند.
لایههای دسترسی پایگاه داده توسعه نیافته
در مقایسه با دیگر فناوریهای محبوب مانند JDBC و ODBC، لایه دسترسی به پایگاه داده پایتون اندکی تحت توسعه و ابتدایی به نظر میرسد و از همین رو قابل اعمال بر کسبوکارهایی نیست که نیاز به تعاملهای روان برای دادههای میراثی پیچیده دارند.
کاربردهای پایتون چیست؟
پایتون یک زبان برنامهنویسی همه منظوره است. به عبارت دیگر، میتوان از پایتون تقریبا برای همه کار استفاده کرد. نکته حائز اهمیت آن است که پایتون یک «زبان تفسیری» (interpreted language) به شمار میآید، بدین معنا که کد نوشته شده به این زبان در زمان اجرا واقعا به فرمت قابل خواندن برای کامپیوتر ترجمه نمیشود. این در حالی است که اغلب زبانهای برنامهنویسی این تبدیل را حتی پیش از اجرا انجام میدهند. این نوع از زبان با عنوان «زبان اسکریپتنویسی» (scripting language) نیز نامیده میشود زیرا هدف از ساخت آن در ابتدا برای استفاده در پروژههای کوچک بوده.
مفهوم «زبان اسکریپتنویسی» از بدو پیدایش آن به شکل قابل توجهی تغییر کرده، زیرا پایتون برای نوشتن نرمافزارهای کاربردی و تجاری بزرگ به جای پروژههای کوچک مورد استفاده قرار میگیرد. استفاده از پایتون در پروژههای گوناگون با افزایش محبوبیت آن رشد قابل توجهی کرده است. بسیاری از برنامههای کاربردی و پلتفرمهای تحت وب از پایتون استفاده میکنند، از این جمله میتوان به «موتور جستوجوی گوگل» (Google’s Search Engine)، «یوتیوب» (YouTube) و سیستمهای تراکنش مبتنی بر وب «بازار بورس نیویورک» (New York Stock Exchange | NYSE) اشاره کرد. برکسی پوشیده نیست که زبان برنامهنویسی که برای سیستم بازار بورس مورد استفاده قرار میگیرد باید بسیار قدرتمند باشد.
«ناسا» (NASA) نیز از پایتون برای برنامهنویسی تجهیزات و ماشینآلات فضایی خود بهره میبرد. فوقالعاده است، نه؟ پایتون همچنین برای پردازش متن، نمایش اعداد یا تصاویر، حل معادلات علمی و ذخیرهسازی داده مورد استفاده قرار میگیرد. به بیان کوتاه، این زبان در پشت صحنه برای پردازش عناصر زیادی که کاربر ممکن است نیاز داشته باشد یا در دستگاه خود با آن مواجه شود – از جمله دستگاههای موبایل- مورد استفاده قرار میگیرد. پایتون در دامنههای وسیعی کاربرد دارد. در ادامه برخی از این موارد بیان میشوند.
توسعه وب و اینترنت
پایتون قابلیتهای زیادی را برای توسعه وب فراهم میکند که از این جمله میتوان به مواردی که در ادامه آمده اشاره کرد.
- چارچوبهایی مانند «جنگو» (Django)، «پیرامید» (Pyramid) و «چریپای» (CherryPy)
- «میکرو چارچوبها» (Micro-frameworks) مانند «فلسک» (Flask) و «باتل» (Bottle)
- سیستمهای مدیریت محتوای پیشرفته مانند «پلون» (Plone) و «جنگو سیاماس» (django CMS).
کتابخانههای استاندارد پایتون از پروتکلهای اینترنتی متعددی پشتیبانی میکنند که برخی از آنها در زیر آمدهاند.
- HTML و XML
- JSON
- پردازش ایمیل
- پشتیبانی از FTP، IMAP و دیگر پروتکلهای اینترنتی
- «رابط سوکت» (Socket Interface) با استفاده آسان
و دیگر بستههای قدرتمندی که برای توسعه وب قابل استفادهاند از جمله موارد زیر:
- Requests: یک کتابخانه قدرتمند برای کلاینت HTTP
- BeautifulSoup: یک پارسر HTML است که انواع HTMLهای عجیب و غریب را مدیریت میکند.
- Feedparser: برای parsing خوراکهای RSS/Atom
- Paramiko: پیادهسازی پروتکل SSH2
- Twisted Python: چارچوبی برای برنامهنویسی شبکه ناهمگام
پردازشهای علمی و عددی
پایتون به طور گستردهای در پردازشهای علمی و عددی مورد استفاده قرار میگیرد. از جمله کتابخانههایی که در این راستا قابل استفادهاند میتوان به موارد زیر اشاره کرد.
- SciPy: مجموعهای از بستههای ریاضیاتی، علمی و مهندسی است.
- Pandas: یک کتابخانه تحلیل داده و مدلسازی است.
- IPython: یک «شِل» (Shell) تعاملی قدرتمند است که امکان ویرایش و ثبت آسان جلسات کاری را فراهم و از بصریسازی و پردازش موازی پشتیبانی میکند.
آموزش
پایتون زبانی فوقالعاده برای آموزش برنامهنویسی هم در سطح مقدماتی و هم دورههای پیشرفتهتر است. جاوا برای سالها زبان برنامهنویسی منتخب بسیاری از دانشگاهها، مدارس و موسسات آموزشی برای آموزش دادن به دانشجویان، دانشآموزان و فراگیران بود. اما پایتون توانست این جایگاه را تصاحب کند و در حال حاضر به دلایل گوناگونی از جمله سادگی، امکان یادگیری سریع و آسان و تواناییهایی که در پردازشهای علمی دارد توانسته زبان اول آموزش در جهان شود.
واسطهای گرافیکی کاربر دسکتاپ
کتابخانه واسط گرافیکی کاربر TkInter در بیشتر توزیعهای دودویی پایتون وجود دارد. برخی از ابزارهایی که در همین راستا در سکوهای گوناگون به طور مجزا موجود هستند عبارتند از:
- wxWidgets
- Kivy برای نوشتن برنامههای کاربردی «چند لمسی» (multitouch)
- Qt با pyqt و pyside
جعبه ابزارهای ویژه پلتفرمهای خاص نیز برای پایتون موجود هستند که از این جمله میتوان به موارد زیر اشاره کرد.
- +GTK
- اغلب کلاسهای بنیاد مایکروسافت از طریق افزونههای win 32
توسعه نرمافزار
پایتون اغلب به عنوان یک زبان پشتیبان توسط توسعهدهندگان نرمافزار برای ساخت، کنترل و مدیریت، تست و کارهای دیگر مورد نیاز در فرآیند تولید و نگهداری نرمافزار مورد استفاده قرار میگیرد. برخی از قابلیتهای پایتون در همین راستا عبارتند از:
- SCons برای ساخت کنترل
- Buildbot و Apache Gump برای تست و کامپایل خودکار مداوم
- Roundup یا Trac برای ردیابی باگ و مدیریت پروژه
کاربردهای تجاری
پایتون برای ساخت سیستمهای «برنامهریزی منابع سازمانی» (Enterprise Resource Planning | ERP) مورد استفاده قرار میگیرد.
Odoo یک نرمافزار مدیریت همه در یک (all-in-one) نوشته شده به زبان پایتون است که یک مجموعه کامل از برنامههای کاربردی مدیریت کسبوکار به شمار میآیند.
چه نسخهای از پایتون را باید استفاده کرد؟
دو نسخه اصلی از پایتون وجود دارد که انتخاب از میان آنها ممکن است کار را برای افراد مبتدی و برنامهنویسان تازهکار کمی گیجکننده کند. دو نسخه پایتون ۲ و ۳ هستند. خبر خوب آن است که در زمینه «نحو» (Syntax) این زبانها باید گفت که بسیار مشابه هستند و توسعه هر دو نسخه قابل قبول است.
پایتون نسخه ۳.۵ (یا بیشتر) به صورت فعالی در حال توسعه است. با توجه به اینکه جامعه متنباز آن همواره در حال توسعه این نسخه از پایتون است، به طور ثابت ویژگیها و عملکردهای جدیدی به آن افزوده میشود. بنابراین به افرادی که تمایل به داشتن ویژگیها و پشتیبانی پیشرفته دارند استفاده از این نسخه توصیه میشود.
پایتون نسخه ۲.۷ تا ۳.۴ (از جمله ۳.۲) همچنان به طور فعالی تعمیر و نگهداری میشوند. این مساله در صورت نیاز به کمک یا مواجهه با مشکل حائز اهمیت است. نسخه ۲.۷، به دلیل اینکه مدت زیادی از انتشار آن میگذرد دارای بیشترین پشتیبانی از کتابخانههای شخص ثالث است. بسیاری از افراد با در نظر گرفتن کتابخانههای هر نسخه، در صورتی که کتابخانه مورد نظرشان به نسخههای جدید پایتون پورت نشده باشد، از همان نسخههای قدیمی استفاده میکنند.
مهمتر آنکه هنگام استفاده از نسخه قدیمیتر پایتون، پرش از یک نسخه به نسخه دیگر کار دشواری نیست. در صورتی که کاربر به نسخه جدید مهاجرت کند، تنها نیاز به یادگیری ویژگیها و توابع جدید دارد. افرادی که از نسخههای جدید به قدیمیترها جابهجا میشوند معمولا با مشکلی روبهرو نمیشوند، اگرچه ممکن است با توابعی مواجه باشند که با نسخههای قدیمیتر ناسازگار است.
قصه انتخاب نسخه پایتون سر دراز دارد و کاملا بسته به کاربر است که با توجه به نیاز خود اقدام به انتخاب کدام نسخه از پایتون کند. هیچ پاسخ درست یا غلطی وجود ندارد. جابهجایی بین نسخههای گوناگون پایتون سخت نیست و افراد پس از آشنایی بیشتر با این زبان و قابلیتهای هر نسخه میتوانند به نسخه مورد نظر خودشان مهاجرت کنند.
راهاندازی محیط پایتون چگونه است؟
یکی از مهمترین موضوعات هنگام کار کردن با هر زبان برنامهنویسی «راهاندازی» (setup) یک «محیط توسعه» (Development Environment) برای آن است که امکان اجرای کدهای نوشته شده به آن زبان را میدهد. بدون این محیط توسعه، کاربر هرگز قادر به بررسی اینکه کدی که نوشته کار میکند یا نه و آیا دارای خطا است یا خیر، نخواهد بود.
برای زبان برنامه نویسی پایتون، به چیزی با عنوان «مفسر» (interpreter) نیز نیاز است که کد را تبدیل به آنچه میکند که برای کامپیوتر قابل خواندن و اجرا است (و در واقع کل برنامه نوشته شده را میسازد). برای تبدیل کد، ابتدا باید از «شِل پایتون» (Python shell) استفاده کرد که اغلب مفسر را از طریق چیزی که خط «بَنگ» (bang) نامیده میشود فراخوانی میکند.
همانطور که برای ساخت یک برنامه کاربری یا فایل دو راه وجود دارد، برای این کار نیز دو روش موجود است. میتوان برنامه را با یک «ویرایشگر متن» (text editor) ساده مانند WordPad یا ++Notepad ساخت. همچنین، میتوان برنامه را با استفاده از شل پایتون آماده کرد. مزایا و معایبی برای هر روش وجود دارد که در ادامه تشریح خواهند شد.
شل پایتون در مقایسه با فایل متنی
«شِل» (Shell) برنامه یا ابزاری است که برای تعامل با سیستم قابل استفاده محسوب میشود. برای مثال، شِل سیستمعامل ویندوز با بهرهگیری از «ترمینال» یا خط فرمان برای نوشتن «فرمانها» (commands) و «آرگومانها» (arguments) قابل استفاده است. با بهرهگیری از زبان برنامه نویسی پایتون، کارها کمی متفاوتتر از شِل سیستمعامل پیش میرود. شِل پایتون برای تعامل با مفسری مورد استفاده قرار میگیرد که کد را به فرم قابل درک کامپیوتر به آن میخوراند.
هنگامی که برنامه پایتون نوشته شده توسط کاربر اجرا میشود، مفسر کد را خوانده و آن را به دستورات قابل استفاده مبدل میکند. مهمترین مسالهای که در این رابطه باید به آن توجه کرد آن است که همه این کارها پس از آن که برنامه اجرا شد انجام میشوند. با یک شِل، تفسیر – یا تبدیل – در زمان واقعی که کد در کامپیوتر یا سیستم نوشته میشود صورت میپذیرد. این یعنی برنامه واقعی هنگام تایپ اجرا نیز میشود. این امر موجب میشود تا کاربر دیدگاهی پیرامون آنکه کد نهایی چگونه به نظر خواهد رسید و چه کاری را در نهایت انجام خواهد داد داشته باشد.
هنگامی که کد در یک فایل متنی نوشته میشود، هیچ یک از موارد بیان شده به وقوع نمیپیوندد تا مستندات به یک مفسر خورانده شوند. اگر پایتون روی کامپیوتر کاربر نصب باشد، میتوان مفسر را با استفاده از خط فرمان فراخوانی کرد، اما این گام پس از آنکه کد نوشته شد انجام میشود. این امر، کشف خطاها در کد را دشوارتر میکند و همچنین اگر مفسر با مسالهای مواجه شود خسته کننده خواهد شد زیرا ممکن است در صورت استفاده از شِل خطاها آنگونه که هستند ظاهر نشوند. هنوز هم توسعهدهندگان بسیاری ترجیح میدهند از ابزارهای ویرایشگر متن استفاده کنند به دلیل آنکه ساده و استفاده از آنها آسان است. ویرایشگرهای متن با کارکردهای افزودهای مانند «++Notepad» وجود دارند که هدف اصلی ساخت آنها برنامهنویسی و توسعه نرمافزار بوده است.
بهترین راه برای آغاز
فراگیران پیش از آنکه کاری با زبان برنامهنویسی انجام دهند، نیاز به پیکربندی محیط توسعه دارند. اکنون، به چگونگی راهاندازی پایتون و مفسری که میتواند برنامههای سفارشی کاربر را اجرا کند پرداخته خواهد شد. پایتون در سیستمعامل «مَک» (Mac) و بسیاری از توزیعهای «لینوکس» (Linux) از پیش نصب شده است. اگرچه، امکان دارد نیاز به دانلود یک نسخه به روز شده از آن با توجه به قدمت سیستمعامل نصب شده روی سیستم کاربر وجود داشته باشد.
نکته: نسخه پایتون نصب شده روی سیستم را میتوان به سادگی با باز کردن ترمینال و اجرای دستور زیر بررسی کرد:
python -V
کاربرانی که سیستمعامل ویندوز را روی سیستم خود نصب دارند، میتوانند نرمافزار پایتون را از مسیر بیان شده در بخش بعدی دانلود کنند.
چگونگی دریافت پایتون
برای افرادی که نیاز به نصب پایتون دارند، بهترین راه وبسایت رسمی آن (+) است. در این وبسایت میتوان نسخهای از پایتون که مناسب سیستمعامل نصب شده روی سیستم کاربر است (۳۲ یا ۶۳ بیت) را نصب کرد. راهکار نصب پایتون در سه پلتفرم معروف و محبوب دسکتاپ در ادامه آمده است.
نصب پایتون در مک: اغلب کامپیوترهای Mac OS X پایتون نسخه ۲ را به صورت نصب شده دارند که برای استفاده بسیار مناسب است. بهترین راه برای نصب آخرین نسخه استفاده از «سیستم مدیریت بسته» (package management system) رایگان و متنباز «Homebrew» (+) برای فعالسازی و مدیریت آنها است. دستورالعملهای چگونگی استفاده از آن در اینجا (+) موجود است.
نصب پایتون در لینوکس: پایتون در اغلب توزیعهای لینوکس وجود دارد. کاربران باید نسخه کنونی نصب شده روی سیستم خود را بررسی کرده و در صورت نیاز آن را با استفاده از مدیر بسته نصب شده روی سیستم عامل خود ارتقا دهند.
نصب پایتون در ویندوز: کافی است پایتون از PSF دانلود شود.
نکته: کاربرانی که از ویندوز استفاده میکنند، باید اطمینان حاصل کنند که گزینه افزودن Python.exe به مسیر سیستم را در طول نصب بزنند. این کار را میتوان با انتخاب گزینه «Add python.exe to path» انجام داد و سپس هارد درایو اصلی را به عنوان محل نصب انتخاب کرد.
جنگو چیست؟
«جنگو» (Django) یک چارچوب برنامههای کاربردی وب متن باز نوشته شده به زبان برنامه نویسی پایتون است. این چارچوب چیزی بیش از یک مجموعه از ماژولها که توسعه را آسانتر میکنند نیست. این ماژولها با هم گروهبندی شدهاند و به کاربر امکان ساخت برنامههای کاربردی یا وبسایتها را از یک منبع موجود به جای نوشتن آنها از پایه میدهند.
این همان روشی است که توسعهدهندگان میتوانند با بهرهگیری از آن وبسایتهای (حتی انواع ساده آنها که توسط یک نفر ساخته شده) دارای کارکردهای پیشرفته مانند «پشتیبانی از احراز هویت» (authentication support)، «پنل مدیریت» (Management Panel) و «پنل مدیر» (Admin Panel)، «فرمهای تماس» (contact forms)، «جعبه نظرات» (comment boxes)، «پشتیبانی از بارگذاری فایل» (file upload support) و بسیاری از دیگر موارد را بسازند. به بیان دیگر، اگر کاربر قصد داشته باشد یک وبسایت را از پایه بسازد، باید کلیه این مولفهها را ساخته و توسعه دهد. در عوض، با استفاده از یک چارچوب، این مولفهها به صورت ساخته شده وجود دارند و تنها نیاز به پیکربندی آنها به شکل مناسب برای وبسایت کاربر است.
سایت رسمی پروژه پایتون (+)، جنگو چنین معرفی میکند: «چارچوب وب پایتون سطح بالا که توسعه سریع، تمیز و طراحی عملگرا را امکانپذیر میسازد. این چارچوب توسط توسعهدهندگان با تجربه ساخته شده و به حل بسیاری از مشکلات توسعه وب کمک میکند، بنابراین کاربر میتواند برنامه خود را بدون نیاز به اختراع چرخ بسازد. این چارچوب رایگان و متنباز است».
جنگو مجموعه بزرگی از ماژولهای قابل استفاده در پروژههای گوناگون را ارائه میدهد. چارچوبها در درجه اول با این هدف ایجاد شدند تا در وقت توسعهدهندگان صرفهجویی شود و جنگو نیز از این قاعده مستثنی نیست. ممکن است برای بسیاری از افراد جالب توجه باشد که جنگو با در نظر داشتن «توسعهدهندگان فِرانتاند» (front-end developers) ساخته شده است.
«جنگو یک زبان قالب است که طراحی شده تا افرادی که با HTML کار میکنند، مانند طراحان یا توسعهدهندگان Front-end در کار با آن راحت باشند و به سادگی آن را بیاموزند. با این وجود، جنگو انعطافپذیر و بسیار توسعهپذیر است و به توسعهدهندگان امکان افزودن زبان قالب را در صورت نیاز میدهد». افرادی که قصد کار با زبان برنامه نویسی پایتون را دارند، به ویژه برای برنامههای کاربردی وب یا طراحی وب، باید جنگو را به خاطر بسپارند. این چارچوب قطعا به کار خواهد آمد.
CherryPy نیز یک چارچوب برنامه کاربردی وب شیگرای مبتنی بر پایتون است که برای کار عالی محسوب میشود. اگرچه، این چارچوب با در نظر داشتن سادگی مطلق طراحی شده. CherryPy چارچوبی است که کاربران پس از آنکه مقداری تجربه در کار با زبان برنامه نویسی پایتون به دست آوردند باید در آن به اکتشاف بپردازند.
پایتون چه تفاوتی با دیگر زبانها دارد؟
پرسشی که ممکن است برای بسیاری از افراد مطرح باشد آن است که با زبان برنامه نویسی پایتون چه تفاوتهایی با دیگر زبانها مانند پیاچپی یا روبی دارد؟ پایتون جایگاهی خوبی به دست آورده زیرا یادگیری و درک آن آسان است. بسیاری از افراد روبی را مانند پایتون زبان خوبی برای شروع میدانند، در حالیکه پایتون چند سالی زودتر از روبی وارد میادین شده و این یعنی ردپای بزرگی در جهان کسبوکار دارد.
همچنین، پایتون در میان توسعهدهندگان زبان برنامهنویسی C نیز از محبوبیت بیشتری برخوردار است، زیرا جابهجایی بین دو زبان و استفاده از یکی از آنها همراه با دیگری آسان است. هم روبی و هم پایتون رشد قابل توجهی در بازار کار داشتهاند، بنابراین انتخاب هر یک از آنها برای کسب شغل میتواند مناسب باشد. PHP نیز با وجود آنکه کاربرد آن متفاوت است زیاد مورد استفاده قرار میگیرد. در نهایت انتخاب بسیار بسته به زمینه مورد استفاده و نوع پروژه موجود دارد.
زبانهای گوناگون در کنار پایتون
«پیاچپی» (PHP) یک زبان اسکریپتنویسی سرور است که در درجه اول برای ساخت وبسایتهای پویا و تعاملی مورد استفاده قرار میگیرد. PHP بهترین زبان برای ساخت محتوای HTML است و برای ساخت هر چیزی از یک بلاگ ساده گرفته تا یک وبسایت بزرگ به سبک شرکتهای بزرگ قابل استفاده خواهد بود.
«پایتون» (Python) یک زبان برنامهنویسی سطح بالا، شیگرا و همه منظوره است که بسیار قابل تطبیق به شمار میآید و تقریبا برای هر کاری میتوان از آن استفاده کرد. این زبان به طور متداولی برای توسعه کاربردهای وب و موبایل، «خزندههای وب» (web crawlers)، «اندیسگذارها» (indexers)، «دیمِن» (Daemon) و «برنامههای کاربردی دارای واسط گرافیکی کاربر دسکتاپ» (Desktop GUI Apps) مورد استفاده قرار میگیرد.
«روبی» (Ruby) یک زبان سطح بالا و شیگرا است که برای کار با برنامههای کاربردی وب و «موجودیتهای داده» (data entities) مورد استفاده قرار میگیرد. این زبان برای تمرکز زُدایی از وظایف «پُرسوجو» (query) ایجاد شده است. روبی برای سیستم انواع پویای آن مشهور است که بررسی نوع را در طول زمان اجرا انجام میدهد. این زبان همچنین دارای ویژگی مدیریت حافظه خودکار است.
نکته: دلیل «سطح بالا» گفتن به یک زبان آن است که نحو و دستورات آن به زبان انسانی نزدیکتر از زبان کامپیوتر است. عبارت سطح بالا در ابتدا برای تشریح زبانهایی به کار میرفت که وابسته به انواع مشخصی از کامپیوترها نبودند.
از هر سه زبان برنامهنویسی بیان شده، زبان برنامه نویسی پایتون برای افراد کاملا مبتدی بهتر است و اغلب توسط برنامهنویسها توصیه میشود زیرا از نحوی ساده بهره میبرد که بر سادگی و سهولت استفاده تاکید دارد. این در حالیست که روبی برای برنامهنویسانی که تجربه کار با دیگر زبانها را دارند بهتر است. PHP گزینه خوبی برای توسعهدهندگان وب است. همه این زبانها اهداف خاص خود را دارند. برای درک بهتر این موارد، در ادامه برخی از شرکتهایی که از این زبانها استفاده میکنند نام برده شدهاند.
چه کسانی از PHP استفاده میکنند؟
به طور خلاصه باید گفت که PHP برای توسعه وب و ساخت صفحات پویای وب طراحی شده است. برندهایی که از PHP برای قدرت بخشیدن به محصولات خود استفاده میکنند شامل موارد زیر میشوند.
- گوگل
- ناسا
- یودمی (Udemy)
- ویکیپدیا
- فیسبوک
چه کسانی از پایتون استفاده میکنند؟
به طور خلاصه، زبان برنامه نویسی پایتون برای تاکید بر بهرهوری، خوانایی و سهولت استفاده طراحی شده است. برندهایی که از زبان برنامه نویسی پایتون برای تولیدات خود بهره میبرند شامل موارد زیر میشوند.
- یوتیوب
- گوگل
- یاهو! مپ (Yahoo! Map)
- شاپزیلا (Shopzilla)
- اولتراسیک (Ultraseek)
چه کسانی از روبی استفاده میکنند؟
روبی به طور خاص برای جذابتر و انعطافپذیرتر شدن فرآیند توسعه برای برنامهنویسان خلق شده است. از جمله برندهایی که از روبی استفاده میکنند میتوان به موارد زیر اشاره کرد.
- توییتر (Twitter)
- هولو «Hulu»
- ایندیگوگو (Indiegogo)
- گروپون (Groupon)
کدام زبان برنامهنویسی برای یادگیری بهترین است؟
اهمیتی ندارد که این سوال را از چه کسی بپرسید، پاسخ آن همیشه مشابه خواهد بود. هیج «بهترینی» در دنیای برنامهنویسی وجود ندارد زیرا هر زبان برای هدف خاصی طراحی شده است. هر سه زبان معرفی شده در اینجا برای اهداف گوناکونی قابل استفاده هستند.
هیچ پاسخ درست و غلطی وجود ندارد!
همچنین، چارچوبهایی برای هر یک از این زبانها وجود دارد که توسعه با آنها را آسانتر میسازد. PHP دارای چندین سیستم مدیریت محتوا مانند «وُردپرس» (WordPress)، «دروپال» (Drupal) و «جوملا» (Joomla) است. پایتون از جنگو (Django) و CherryPy بهره میبرد. در نهایت، روبی دارای ریلز (Rails) یا روبی آن ریلز (Ruby on Rails) است.
شش پروژه برنامهنویسی برای مبتدیان
پس از آنکه نصب پایتون انجام شد، میتوان فراگیری زبان و مبانی یادگیری را آغاز کرد. برای شروع، در این قسمت برخی از پروژهای زبان برنامه نویسی پایتون تشریح شدهاند که میتوان از آنها برای یادگیری پایتون استفاده کرد. این پروژهها به گونهای هستند که درک آنها نیاز به وجود هیچ دانش برنامهنویسی پیشینی در فرد ندارد.
. « Hello World»
تقریبا همه افراد با تمرین «Hello World» آشنایی دارند. این کد در آغاز یادگیری همه زبانهای برنامهنویسی وجود دارد. هدف در اینجا آن است که یک پیام ورودی کوچک در خروجی ارائه شود تا کاربر بتواند خود را به دنیای برنامهنویسی معرفی کند. در زبان برنامه نویسی پایتون، این کار فوقالعاده ساده است. همه آنچه کاربر در این راستا نیاز دارد باز کردن مفسر و تایپ دستورات زیر است:
print(“Hello World”)
print(“My name is”) #add your name after the word “is” obviously
اگر همه چیز خوب پیش برود، کاربر باید چیزی مانند آنچه در زیر آمده را مشاهده کند.
> python3 #to call upon Python on MAC OS X use this command, for Windows use “python”
Python 3.5.1 (default, Jan 14 2016, 06:54:11)
[GCC 4.2.1 Compatible Apple LLVM 7.0.2 (clang-700.1.81)] on darwin
Type “help”, “copyright”, “credits” or “license” for more information.
>>> print(“Hello World”)
>>> print(“My name is Bob”)
Hello World
My name is Bob
به وضوح مشخص است که دستور print برای نمایش محتوا روی صفحه به کار رفته. این دستور را باید به خاطر سپرد زیرا اغلب مورد استفاده قرار میگیرد. متنی که بعد از نماد # قرار میگیرد یک دستور است. نظرات در زمان اجرا ظاهر نمیشوند و در عوض برای توسعهدهندگانی که با کد کار میکنند معنادار محسوب میشوند. نظری که در کد بالا قرار گرفته دستورالعملی برای افزودن نام کاربر به پیام فراهم میکند. اغلب نظرات، برچسبها یا توصیفهای کوتاهی پیرامون یک تکه از کد ارائه میکنند، بنابراین خواننده کد میتواند به سادگی متوجه شود که آن بخش از کد چه کاری انجام میدهد.
۲. انجام محاسبات
در ادامه محاسبات سادهای اجرا و نتیجه آن مشاهده خواهد شد. کد زیر برای انجام عمل جمع وارد خواهد شد.
۷ + ۲
پس از نوشتن معادله بالا و فشردن دکمه «enter»، چیزی شبیه زیر باید قابل مشاهده باشد.
>>> 7 + 2
۹
اینکه چگونه مفسر به طور خودکار به معادله پاسخ داده و نتایج را منتشر میکند مسالهای قابل توجه است.
۳. ساخت اولین رشته
یک «رشته» (string) یک توالی از کاراکترها است که توسط کامپیوتر قابل پردازش هستند. رشته معمولا برای انجام دستکاریهای بعدی ذخیره میشود. میتوان از «”» یا «’» برای مشخص کردن یک رشته استفاده کرد.
هیچ تفاوتی بین استفاده از «”» و «’» وجود ندارد. «گفتاوردها» (quotations | کوتیشنها) تنها بدین منظور مورد استفاده قرار میگیرند که به پایتون بفهمانند آنچه میان آنها قرار گرفته یک رشته است. اکنون یک نام به صورت رشته با استفاده از کدی که در ادامه میآید ذخیره میشود.
>>> “Bob”
‘Bob’
بسیار عالی، یک رشته ساخته شد. میتوان ملاحظه کرد که نام به صورت یک رشته ذخیره شده است. اکنون، هدف آن است که این رشته تست و بررسی شود که چه کارهایی با آن قابل انجام است. ابتدا، از چندین رشته به طور متوالی استفاده میشود. این کار با تایپ کد زیر در مفسر صورت میپذیرد.
>>> “Hello there ” + “my name is ” + “Bob”
‘Hello there my name is Bob’
چگونگی اتصال رشتهها به یکدیگر پیش از آنکه محتوا نمایش داده شود جالب توجه است. دیگر ترفندی که میتوان از آن استفاده کرد تکرار رشتهها یا دستکاری آنها از طریق معادلهها است.
>>> “Bob” * 4
‘BobBobBobBob’
انجام چنین کاری ممکن است در این وهله سادهلوحانه به نظر برسد چون چنین کاری در جهان واقعی معمولا انجام نمیشود. اگرچه، چنین دستکاریهایی هنگام کار روی پروژههای بزرگی که رشتههای زیادی دارند در پایتون بسیار مفید واقع خواهد شد. برای مشاهده یک رشته با حروف بزرگ – به جای استفاده از Caps Lock – میتوان از دستور زیر استفاده کرد.
>>> “Bob”.upper()
‘BOB’
۴. بازگرداندن طول یک عبارت یا کلمه
در حالت عادی، اگر فردی قصد دانستن تعداد حروف یک کلمه یا عبارت را داشته باشد آنها را میشمارد اما این کار جالب نیست. در زبان برنامه نویسی پایتون یک دستور برای انجام چنین کاری تخصیص داده شده است. برای تعیین تعداد حروف یک کلمه یا رشته، باید دستور زیر را در مفسر پایتون وارد کرد.
>>> len(“BobIsTheGreatestEver”)
۲۰
همچنین میتوان طول (سایز) همه لیست را با استفاده از دستور مشابهی محاسبه کرد.
>>> players = [‘bryan’, ‘john’, ‘chris’]
>>> len(players)
۳
۵. ذخیرهسازی متغیرها
هر ورودی در لیست «players» یک متغیر نامیده میشود. متغیرها کاری فراتر از اینکه نام یا عنوانی برای یک مجموعه مشخص از مقادیر باشند انجام نمیدهند و بنابراین میتوان آنها را ذخیره و هر زمان نیاز بود فراخوانی کرد.
برای مثال، متغیر راهنمای بالا یعنی «players» برای ذخیرهسازی نام بازیکنان استفاده خواهد شد. اکنون متغیر دیگری با استفاده از کد زیر ساخته خواهد شد.
>>> movie = “Terminator”
در اینجا متغیر «movie» و محتوای ذخیره شده در آن «Terminator» است. چیزی که پیرامون متغیرها باید به آن توجه کرد این است که مفسر چیزی را پس از ذخیرهسازی اطلاعات باز نمیگرداند. بنابراین این پرسش ممکن است برای برخی پیش بیاید که از کجا میتوان اطمینان داشت که متغیرها واقعا ذخیره شدهاند. این موضوع را میتوان با وارد کردن «movie» در مفسر و فشردن دکمه enter بررسی کرد. این کار باید موجب شود که داده ذخیره شده داخل متغیر بازگردانده شود. مثال عملی این مورد در ادامه آماده است.
>>> movie
‘Terminator’
برای تغییر مقدار ذخیره شده در یک متغیر میتوان به صورت زیر عمل کرد.
>>> movie = “Cinderella”
>>> movie
‘Cinderella’
۶. مقایسه
یکی از کارهای واقعا مفیدی که میتوان با استفاده از زبانهای برنامهنویسی انجام داد مقایسه مجموعههای داده است. این کار در زبان برنامه نویسی پایتون به شکل زیر صورت میپذیرد.
>>> 7 > 2
True
>>> 9 < 1
False
>>> 6 > 2 * 4
False
>>> 3 == 3
True
>>> 5 != 2
True
نکته قابل توجه استفاده از دو علامت مساوی (==) برای بررسی این موضوع است که آیا مجموعههای داده مساوی هستند؟ همواره برای مقایسه برابری دو مقدار باید از علامت (==) استفاده شود. به همین دلیل است که یک علامت «=» برای تخصیص مقدار به یک متغیر مورد استفاده قرار میگیرد. علاوه بر این، برای بررسی اینکه دو مقدار مساوی نیستند، میتوان از «=!» استفاده کرد.
وضعیت اشتغال برای برنامهنویسان پایتون چگونه است؟
اغلب افراد هنگام انتخاب زمینه فعالیت و یادگیری مهارتهای مرتبط، با این پرسش مواجه میشوند که فرصتهای شغلی موجود و درآمد فعالان آن حوزه چگونه است.
این موضوع قطعا برای علاقمندان به فراگیری برنامهنویسی پایتون نیز صادق است. بنابراین در ادامه توضیحاتی پیرامون شرایط شغلی برنامهنویسان پایتون در ایران ارائه شده است.
در ایران فعالترین شرکتهایی که برنامهنویسهای پایتون در آن مشغول به کار هستند در شهرهای تهران، مشهد، اصفهان، کرج، شیراز و تبریز قرار دارند.
حقوق دریافتی کارکنان بسته به عاملهای گوناگون از اداره کار تا بالغ بر دوازده میلیون تومان است.
از جمله عوامل تاثیرگذار بر حقوق دریافتی میتوان به سابقه کار و پروژههایی که فرد در آنها فعال بوده (تجربه)، جایگاه شغلی، آشنایی با فریمورکها و ابزارهای مورد نیاز در پروژه اشاره کرد.
برای اشتغال در زمینه زبان برنامه نویسی پایتون داشتن مهارت بسیار مهمتر از مدرک است. پیش از این برخی از شرکتها برای استخدام نیروهای خود به داشتن مدرک تحصیلی در حوزههای مرتبط اهمیت به سزایی میدادند و حتی فقدان مدرک از شرایط رد متقاضیان محسوب میشد. ولیکن در حال حاضر مدرکگرایی جایگاه خود را به مهارتمحوری بخشیده است.
انواع مشاغلی که برنامهنویسان پایتون میتوانند در آن به کار بپردازند تمام وقت، نیمه وقت، پروژهای، قراردادی، خوداشتغالی و دیگر موارد است.
مواردی مانند ساعات و قوانین کاری، مستقل از قوانین مصوب اداره کار بسیار بستگی به قوانین سازمان ارائهدهنده فرصت شغلی و مذاکرات برنامهنویس با سازمان دارد. برخی از سازمانها دارای ساعات کار انعطافپذیر هستند و برخی دیگر قواعد خاصی در زمینه تولید و نگهداری کدها دارند.
این در حالیست که مطابق نظرسنجی توسعهدهندگان انجام شده توسط «استک اورفلو» (StackOverflow) در سال ۲۰۱۸، پایتون فناوری با بیشترین متقاضی در این سال است (بدین معنا که سازمانهای زیادی به استخدام برنامهنویسهای پایتون پرداختهاند). زبان برنامه نویسی پایتون همچنین جایگاه هفتم را در میان زبانهای برنامهنویسی متداول دنیا به دست آورده.
درآمد برنامهنویسان پایتون در میان ۱۰ زبان پر درآمد در آمریکا اول بوده و پس از آن روبی و جاوا قرار دارند. همچنین، زبان برنامه نویسی پایتون جایگاه سوم را برای بیشترین آگهیهای شغلی منتشر شده به دست آورده است.
دیگر راه برای تشخیص پیشرفت زبان برنامه نویسی پایتون مشاهده شاخص محبوبیت زبانهای برنامهنویسی (PYPL | PopularitY of Programming Language) است که فرکانس جستوجوی راهنماهای (tutorials) زبانهای برنامهنویسی گوناگون در گوگل را در نشان میدهد. بر اساس این آمار، در سال ۲۰۱۸، پایتون به جایگاه اول صعود کرده و به محبوبترین زبان برنامهنویسی برای یادگیری مبدل شده است.
بازار کار پایتون چگونه است؟
فرصتهای شغلی متعدد و متنوعی برای برنامهنویسان پایتون در زمینهها و کسب و کارهای گوناگون از برنامهنویسی وب گرفته تا هوش مصنوعی و علم داده، با درآمدهای خوب، وجود دارد.
چه تعداد برنامهنویس پایتون در جهان هست و بازار کار آن چگونه است؟
بیان اینکه زبان برنامه نویسی پایتون محبوبترین انتخاب در میان مهندسان نرمافزار محسوب میشود آسان است. اما چگونه میتوان مصداق این محبوبیت را در ارقام و اعداد دید؟ مطابق مطالعات جمعیتشناسی توسعهدهندگان جهانی سال ۲۰۱۸ (Global Developer Population and Demographic Study 2018)، در حال حاضر ۲۳ میلیون توسعهدهنده در جهان وجود دارد. انتظار میرود این عدد تا ۲۷/۷ میلیون تا سال ۲۰۲۳ رشد کند. هیچ اطلاعات دقیقی پیرامون جمعیت برنامهنویسهای پایتون در سراسر جهان وجود ندارد زیرا این عدد به طور مداوم در حال رشد است.
اگرچه، بر اساس مطالعات TIOBE، توسعهدهندگان پایتون ۵/۷۶۱٪ از توسعهدهندگان در اقصی نقاط جهان را تشکیل میدهند. همزمان، «نتایج نظرسنجی توسعهدهندگان سال ۲۰۱۷» حاکی از آن است که ۱۸٪ از توسعهدهندگان پایتون در ایالات متحده آمریکا متمرکز هستند و در اغلب موارد روی پروژههای خود به طور مستقل کار میکنند. این دادهها اثبات میکند که این روزها پیدا کردن توسعهدهندگان پایتون در آمریکا کاری دشوار است زیرا تعداد توسعهدهندگان کم و محدود است و اغلب آنها در حال حاضر مشغول به کار هستند.
مزایای یادگیری پایتون
مزایای زیادی برای یادگیری زبان برنامه نویسی پایتون به ویژه به عنوان زبان برنامهنویسی اول یک فرد وجود دارد که در ادامه تشریح خواهند شد. یادگیری این زبان به طور قابل توجهی آسان است و از آن میتوان به عنوان مبنایی برای یادگیری دیگر زبانهای برنامهنویسی نیز بهره برد. اگر فردی حقیقتا در یادگیری زبانهای برنامهنویسی مبتدی است و این اولین باری محسوب میشود که با یک نوع از زبانهای کد زدن آشنا میشود، زبان برنامه نویسی پایتون قطعا بهترین گزینه برای او خواهد بود.
زبان برنامه نویسی پایتون به طور گستردهای توسط شرکتهای بزرگی مانند گوگل، پینترست، اینستاگرام، دیزنی، یاهو!، نوکیا، IBM و بسیاری از دیگر شرکتها مورد استفاده قرار میگیرد. «رزبری پای» (Raspberry Pi) که یک مینی کامپیوتر بسیار محبوب است نیز بر زبان برنامه نویسی پایتون به عنوان زبان اصلی تکیه دارد. احتمالا بیان این نکات برخی افراد را متعجب کند و به طرح این پرسش وادارد که بیان این موارد چه اهمیتی دارد؟ پاسخ این پرسش آن است که هنگامی که فردی پایتون میآموزد، هیچ وقت با کمبودی در به کارگیری مهارتهای خود مواجه نخواهد شد. لازم به ذکر نیست که وقتی بسیاری از شرکتهای بزرگ بر استفاده از یک زبان تکیه و تاکید دارند، یادگیرندگان آن میتوانند پول خوبی به دست آورند.
دیگر مزایای یادگیری این زبان عبارتند از:
زبان برنامه نویسی پایتون قابل استفاده برای ساخت و توسعه «پیشنمونهها» (prototypes) به طور سریع است زیرا کار با آن و خواندن کدهای نوشته شده به این زبان آسان است.
اغلب پلتفرمهای «اتوماسیون» (automation)، «دادهکاوی» (data mining) و «کلان داده» (مِه داده | Big Data) بر پایتون تکیه دارند. این امر بدان دلیل است که زبان برنامه نویسی پایتون زبانی ایدهآل برای کار کردن برای وظایف همه منظوره است.
خواندن کدهای پایتون آسان است، حتی اگر فرد یک برنامهنویس ماهر نیز نباشد. هر کسی میتواند کار با زبان پایتون را آغاز کند، این امر تنها نیازمند کمی صبوری و تمرین است. علاوه بر آن، این موضوع موجب میشود تا زبان برنامه نویسی پایتون برای پروژههای دارای چند برنامهنویس و تیمهای توسعه بزرگ مورد استفاده قرار بگیرد.
زبان برنامه نویسی پایتون از «جنگو» (Django) که یک چارچوب نرمافزاری تحت وب آزاد و «متنباز» (open source) است قدرت میگیرد. چارچوبها – مانند «روبی آن ریلز» (Ruby on Rails) – برای ساده کردن فرآیندهای توسعه قابل استفاده هستند.
این زبان به لطف متنباز بودن و جامعه توسعهدهندگان آن، دارای پایه پشتیبانی بسیار قوی است. میلیونها نفر از توسعهدهندگان همفکر به طور روزانه با این زبان کار میکنند و کارکردهای هستهای آن را بهبود میبخشند. آخرین نسخه از پایتون همچنان در حال دریافت بهبودها و به روز رسانیهایی در گذر زمان است. این راهکار فوقالعادهای برای شبکهسازی با دیگر توسعهدهندگان است.
یادگیری پایتون
به نظر میرسد با توجه به بررسیهای انجام شده، پایتون در حال حاضر یکی از بهترین زبانها (از جنبههای گوناگون) برای یادگیری به حساب میآید. در این وهله، علاقمندان به یادگیری این زبان با این پرسش مواجه میشوند که بهترین مسیر یادگیری پایتون چیست و چگونه میتوان به سادهترین و سریعترین روش برنامهنویسی پایتون را آموخت. امروزه منابع آموزشی متعددی در سراسر اینترنت و دنیای وب وجود دارد و چندان دغدغهای بابت منبع آموزشی مناسب برای یادگیری پایتون وجود نخواهد داشت. قطعاً برای کاربران فارسیزبان خیلی بهتر است که از منابع آموزشی ارائه شده به زبان فارسی استفاده کنند.
حتی اگر تسلط کافی روی زبان انگلیس وجود داشته باشد، باز هم یادگیری با استفاده از زبان اول بسیار بهینهتر و بهتر اتفاق خواهد افتاد.
مسیر یادگیری برنامه نویسی وب با پایتون
زبان برنامه نویسی پایتون برای برنامه نویسی سمت سرور یا همان Back End استفاده میشود. برای یادگیری برنامه نویسی وب، حتی بک اند، آشنایی با HTML و CSS لازم است. همچنین باید با جاوا اسکریپت هم به اندازه کافی آشنایی داشته باشیم.
نابراین پیشنهاد میشود علاقهمندان برای آشنایی بیشتر با این حوزه، مطالب مربوطه را مطالعه کنند. اما به طور کلی مسیر یادگیری توسعه وب با پایتون را میتوان به صورت زیر ترسیم کرد.
- یادگیری HTML و CSS
- آشنایی با جاوا اسکریپت
- DOM و جیکوئری
- یادگیری یک فریمورک فرانت اند مثل React (اختیاری)
- یادگیری جنگو به همراه پایگاه داده
بنابراین با توجه به مسیر ترسیم شده در بالا، ابتدا میتوان HTML و CSS را با استفاده از دوره زیر یاد گرفت.
مسیر آموزش یادگیری ماشین و هوش مصنوعی با پایتون
اهمیت هوش مصنوعی و یادگیری ماشین روز به روز بیشتر میشود چرا که این حوره زبه سرعت در حال پیشرفت است و تاثیرات زیادی روی زندگی انسانها داشته و خواهد داشت. همین حالا که در حال ویرایش این متن هستیم، هوش مصنوعی ChatGPT به شدت محبوب شده است و بسیاری از افراد در شبکههای اجتماعی اعلام میکنند که استفاده از این مُدل زبانی مبتنی بر AI به آنها در شغل و حرفهشان کمک بسزایی میکند.
یادگیری ماشین یکی از اصلیترین و مهمترین حوزهها و بخشهای هوش مصنوعی به حساب میآید. پایتون یکی از بهترین و پرکاربردترین زبانهای برنامه نویسی برای استفاده در هوش مصنوعی و یادگیری ماشین به حساب میآید.
نتیجهگیری
در این مطلب چیستی زبان برنامهنویسی پایتون، دلایل محبوبیت آن، ویژگیها، مزایا و معایب، کاربردها، نسخههای گوناگون و چگونگی انتخاب از میان آنها، روش راهاندازی محیط پایتون، چیستی «جنگو» (Django)، تفاوتهای پایتون با زبانهای روبی و پیاچپی، جمعیت برنامهنویسهای پایتون در جهان، وضعیت اشتغال برنامهنویسهای پایتون در ایران، شش پروژه برنامهنویسی پایتون برای مبتدیان، مزایای یادگیری و روش یادگیری این زبان پرداخته شد.
همانطور که مشهود است، پایتون زبانی دارای نحو ساده اما قدرت و ویژگیهای بسیار زیاد محسوب میشود و در حوزههای گوناگون مورد استفاده قرار میگیرد. زبان برنامهنویسی پایتون مستحکم است و نگهداری و خطایابی کدهای نوشته شده به این زبان به شکل خیلی خوبی قابل انجام هستند.
منابع : فرادرس ، ویکیپدیا ، سایت رسمی پایتون
جمع آوری : علی نژادمزارع