ساختار شرط و حلقه‌های تکرار

توابع پیش‌ساخته و تعریف توابع جدید

متغیرهای پیمایش‌پذیر

نصب پایتون و دسترسی به محیط تعاملی

فهرست

روش‌ها و ابزارهای متعددی برای برنامه‌نویسی وجود دارد. برای اینکه ابزار مناسب خود را پیدا کنیم، لازم است که در ابتدا کمی وقت صرف کنیم و درباره آن‌ها اطلاعات کسب کنیم. در این درس تلاش شده تا با مرور مجموعه‌ای از توضیحات به معیاری برای انتخاب بهترین گزینه‌ها برای خودمان دست پیدا کنیم. سپس با یکی از ساده‌ترین روش‌ها برای نصب پایتون آشنا خواهیم شد و به برخی از محبوب‌ترین ویرایشگرهای آن نگاه خواهیم کرد.

چرا محیط تعاملی؟

برای برنامه‌نویسی به هر زبانی روش‌های متعددی وجود دارد که لازم است پیش از نصب برنامه، درباره آن‌ها تصمیم‌گیری کنیم. به عنوان نمونه، واسط‌ها و ویرایشگرهای گوناگونی وجود دارند که هر کدام امکانات مختلفی را در اختیار کاربر قرار می‌دهند. ویرایشگرهای موجود ویژگی‌های جذابی برای برنامه‌نویس‌ها دارند، اما یک ویژگی هست که به عنوان نمونه اگر بخواهیم در حوزه علوم داده کار کنیم باید حتما آن را لحاظ کنیم. این ویژگی چیزی نیست جز دسترسی ساده و بی‌دردسر به یک محیط تعاملی برای کدنویسی. برای اینکه بدانیم محیط تعاملی چیست و چرا دسترسی به آن اهمیت دارد، اجازه بدهید تا از تفاوت مفسر و مترجم شروع کنیم.

تفاوت مفسر و مترجم

همچنان که پیشتر نیز اشاره شد دستوراتی که در زبان‌‎های برنامه‌نویسی مختلف اجرا می‌شوند، مراحل میانی گوناگونی مانند ترجمه و تفسیر را طی می‌کنند تا به زبان ماشین برسند و روی سخت‌افزار کامپیوتر اجرا شوند. هرچقدر زبانی از زبان ماشین دورتر باشد آن را زبانی سطح بالاتر و هرچقدر به آن نزدیک‌تر باشد آن را زبانی سطح پایین‌تر می‌نامیم.

وقتی یک برنامه کامپیوتری ترجمه یا compile می‌شود، از زبان مبدا که زبانی سطح بالاتر است به زبان مقصد که زبانی سطح پایین‌تر مثل زبان ماشین یا زبان اسمبلی[1] است، تبدیل می‌شود. این فرایند به صورت یک‌باره و سرتاسری انجام می‌شود. به عبارت دیگر، وقتی برنامه‌ای کامپایل شد، یک فایل قابل اجرا برای ماشین ساخته می‌شود و دیگر نیازی به نسخه اولیه برنامه در زبان مبدأ وجود ندارد. با این کار می‌توان نسخه کامپایل‌شده را هر زمان که لازم شد، بدون نیاز به نسخه اولیه برنامه دوباره اجرا کرد. زبان C به خاطر استفاده‌های زیرساختی معمولا با کامپایلر به کار گرفته می‌شود تا عملکرد بهتری حاصل شود.

برخلاف کامپایل‌کردن که عمل تبدیل زبان مبدأ به مقصد در آن تنها پس از کامل شدن برنامه در زبان مبدا امکان‌پذیر است، در تفسیر یا interpretation، متن برنامه به صورت سطر به سطر یا به بیان دقیق‌تر به صورت عبارت به عبارت یا دستور به دستور به نسخه‌ای قابل اجرا برای ماشین تبدیل می‌شود و بدون اینکه نسخه‌ای از آن جایی ذخیره شود، بی‌درنگ اجرا می‌شود. در اجرای برنامه به وسیله مفسر همیشه باید دسترسی به متن اصلی برنامه (زبان مبدأ) وجود داشته باشد. زبان python معمولا با مفسر به کار گرفته می‌شود.

در کامپایل کردن، فاصله زبان مبدأ تا زبان ماشین یک بار طی می‌شود، به همین دلیل پس از کامپایل شدن برنامه، سرعت اجرای نسخه کامپایل‌شده بسیار بیشتر خواهد بود. اما در تفسیر، فاصله زبان مبدأ تا زبان ماشین باید به صورت مستمر طی شود. به همین دلیل اجرا کندتر خواهد بود.

اما مدت زمان یک پروژه نرم‌افزاری ممکن است تنها تحت تاثیر زمان اجرای آن روی سخت‌افزار کامپیوتر نباشد و از عوامل دیگری مثل زمان توسعه آن توسط برنامه‌نویس هم تاثیر بپذیرد.

موازنۀ عامل انسانی و سخت‌افزار

در پروژه‌های نرم‌افزاری بین زمان اجرای برنامه‌ روی پردازشگرهای کامپیوتر از یک طرف و زمان توسعه آن توسط برنامه‌نویس از طرف دیگر معمولا نوعی موازنه‌ برقرار است. هرچه تصمیمات اولیه – مثل استفاده از ترجمه به جای تفسیر، به گونه‌ای باشد که زمان اجرا روی سخت‌افزار کمتر شود، عامل انسانی باید زمان بیشتری صرف کند تا برنامه‌ مورد نظر را مطابق با نیازهای تعیین شده توسعه دهد. از طرف دیگر، هرچه کفه تصمیمات اولیه – مثل استفاده از مفسر به جای مترجم، به نفع صرفه‌جویی در زمان برنامه‌نویس سنگین شود، زمان اجرای برنامه روی سخت‌افزارها افزایش می‌یابد[2].   

در بسیاری مواقع گلوگاه فعالیت‌ها، عوامل انسانی پروژه مانند برنامه‌نویس‌ها هستند نه سخت‌افزار و تجهیزات آن. به عنوان مثال بخش قابل توجهی از زمان برنامه‌نویسان صرف برطرف کردن خطاها می‌شود. برای پیدا کردن خطا، قابلیت اجرای سطر به سطر و مشاهده نتایج میانی برنامه کمک زیادی به برنامه‌نویس و کاهش زمان فعالیت‌ها می‌کند. این ویژگی در پروژه‌هایی که پیوسته نیاز به تغییر و توسعه دارند – مانند بسیاری از پروژه‌های رایج – بسیار کارآمد خواهد بود.

نیاز به محیط تعاملی در علوم داده

یکی دیگر از فعالیت‌هایی که زمان عامل انسانی بیش از عوامل دیگر در آن تعیین کننده است علوم داده است. در علوم داده، تحلیلگر نیاز به آزمون و خطای مستمر با داده دارد تا روش تحلیل خود را به صورت گام به گام طراحی و آزمایش کند. به همین خاطر، در علوم داده به محیطی تعاملی برای برنامه‌نویسی نیاز است تا تحلیلگر بتواند کار خود را قدم به قدم پیش ببرد. منظور از محیط تعاملی همین است که بتوانید هر دستور را مثلا با فشار دادن کلید enter اجرا کنید و نتیجه آن را مشاهده کنید. این نتیجه می‌تواند یک مجموعه‌ای از مقادیر، نمودار یا فایلی روی حافظه بلندمدت کامپیوتر شما یا موارد دیگری مانند آ‌ن‌ها باشد.

در کتاب «علوم داده» از سری کتاب‌های دانش‌های ضروری انتشارات دانشگاه MIT بخشی وجود دارد به نام «افسانه‌های علوم داده» که در آن به چهار باور نادرست درباره علوم داده اشاره شده است. نخستین باوری که کتاب به آن اشاره می‌کند این است که علوم داده فرایندی خودکار است که کافیست آدرس داده‌ها را به آن بدهیم تا خودش پاسخ سوالات را پیدا کند. در حالی که در واقعیت، انسان متخصص و صاحب مهارت در تمامی مراحل پروژه‌های علوم داده نقشی تعیین‌کننده و پررنگ دارد. عامل انسانی لازم است تا با طرح درست مسئله چهارچوبی برای پرداختن به آن مشخص کند، فرایندی برای گردآوری و آماده‌سازی داده‌ها پیشنهاد کند، روش تحلیل را انتخاب و مناسب‌سازی کند، نتایج را با رویکرد انتقادی تفسیر کند و با جلب نظر سایر ذی‌نفعان بهترین برنامه‌ را با استفاده از نتایج بدست آمده تدوین کند.

بدون نیروی انسانی حاذق، شکست پروژه‌های علوم داده حتمی است. برخلاف آنچه برخی تصور می‌کنند، پردازشگرها نقش اصلی را در علوم داده به عهده ندارند. گلوگاه اصلی شرکت‌ها و سازمان‌ها برای بهره‌برداریِ تحلیلی از داده‌ها همچنان چیزی غیر از نیروی انسانی دانا و متخصص نیست.

نصب پایتون

برای تغییر این متن بر روی دکمه ویرایش کلیک کنید. لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با استفاده از طراحان گرافیک است.پایتون یک زبان برنامه‌نویسی شامل مجموعه‌ای از قواعد برای بیان ایده‌های محاسباتی است. برای اجرای برنامه‌هایی که به هر زبانی می‌نویسیم باید پردازنده‌ای روی کامپیوتر خود نصب کنیم تا فرایند ترجمه، تفسیر یا هر نوع دیگر تبدیل از زبان مبدأ به زبان مقصد امکان‌پذیر شود. پردازنده‌ای که به صورت عمده برای اجرای پایتون استفاده می‌شود CPython نام دارد.

وقتی اصطلاحا می‌خواهیم پایتون را نصب کنیم در واقع باید سه چیز را نصب کنیم:

  1. پردازنده زبان که معمولا به صورت پیش‌فرض از CPython استفاده می‌شود.
  2. مجموعه‌ای از امکانات پایه که در کتابخانه‌ای به نام کتابخانه استاندارد[3] قرار دارند.
  3. ویرایشگری که محیطی برای کدنویسی و اجرا در اختیار برنامه‌نویس قرار دهد[4].

این موارد معمولا در قالب یک بسته نصبی دریافت و نصب می‌شود. اما علاوه بر اقلام استانداردی که در بسته نصبی پایتون وجود دارند، کتابخانه‌ها و ویرایشگرهای پرطرفدار دیگری هستند که با استقبال زیادی در اجتماع کاربران پایتون مواجه شده‌اند.

نصب ساده با آناکوندا

مجموعه موارد یاد شده شامل پردازنده زبان، کتابخانه ‌استاندارد، کتابخانه‌های پرکاربرد محاسباتی مانند  numpy، pandas و matplotlib و ویرایشگرهای محبوبی مانند Jupyter Notebook، Spyder، Pycharm و Rstudio همراه با ابزاری برای مدیریت کتابخانه‌ها در وبسایت آناکوندا همه در یک فایل نصبی در دسترس عموم قرار دارد[5]. برای کار با پایتون کافیست به لینک زیر مراجعه کنید و فایل مربوطه را دریافت و نصب کنید:

اگر بخواهید نسخه سبک‌تری از Anaconda که تنها شامل موارد ضروری‌تری مثل بسته نصبی پایتون و ابزار مدیریت کتابخانه باشد، این امکان نیز وجود دارد. برای نصب نسخه سبک‌تر کافیست به لینک زیر مراجعه کنید:

اگر از نسخه سبک‌تر استفاده می‌کنید، باید ویرایشگر و کتابخانه‌های مورد نظر خود را پس از نصب آن دریافت کنید. در مورد کار با ابزار مدیریت کتابخانه در آناکوندا به صورت جداگانه صحبت خواهد شد.

* * *

با نصب آناکوندا پایتون و ملزومات آن نیز با موفقیت روی کامپیوتر شما نصب می‌شود. اگر پس از نصب آناکوندا آن را باز کنید با چنین صفحه‌ای مواجه می‌شوید.

استفاده از ویرایشگرهایی مثل Jupyter Notebook، Spyder و Rstudio که در این صفحه معرفی شده‌اند، نسبت به ویرایشگر پیش‌فرض که با بسته نصبی پایتون نصب می‌شود مزایای بیشتری دارند و کار برنامه‌نویسی را به مراتب ساده‌تر می‌کنند.

نگاهی به برخی از ویرایشگرهای پایتون

در ادامه، نگاهی به سه ویرایشگر Jupyter Notebook، Spyder و Rstudio خواهیم انداخت. شما با خیال راحت می‌توانید هر یک از آن‌ها را یا حتی ویرایشگرهای مناسبی غیر از آن‌ها را برای کار با پایتون انتخاب کنید.

Jupyter Notebook

ژوپیتر نوتبوک  ویرایشگر تحت وب است که دسترسی به محیط تعاملی برای برنامه‌نویسی در آن از طریق مرورگر شما انجام می‌شود. یعنی زمانی که ژوپیتورنوتبوک را فراخوانی می‌کنید در یکی از مرورگرهای شما مثل گوگل‌کروم، فایرفاکس، سافاری یا اِج باز می‌شود.

برای شروع کدنویسی کافیست بالای صفحه سمت راست روی کلید New کلیک کنیم و گزینه Python را برای اجرای کدها انتخاب کنیم تا یک تب جدید در مرورگرمان برای توسعه برنامه مورد نظرمان ایجاد شود. برای اطمینان از اینکه همه چیز با موفقیت نصب شده می‌توانید یک عملیات ریاضی ساده را همانطور که در ماشین حساب تایپ می‌کنید به عنوان ورودی تایپ کنید و کلید اجرا (Run) را فشار دهید تا نتیجه محاسبه را مشاهده کنید. اگر خروجی محاسبه را مشاهده کردید، می‌توانید از اینکه نصب با موفقیت انجام شده اطمینان حاصل کنید. متن برنامه، تنها زمانی که ویرایشگر در حالت Code قرار داشته باشد، قابل توسعه است.

ژوپیتر نوتبوک  یک ویرایشگر ساده است و به همین خاطر در بسیاری موارد برای مقاصد آموزشی یا در شروع یادگیری سراغ آن می‌روند. JupyterLab ساختار مشابه ژوپیتر نوتبوک دارد اما مجموعه امکاناتی که در اختیار برنامه‌نویس و تحلیلگر می‌گذارد بیشتر است. ژوپیتر به خاطر امکان یادداشت‌نویسی و اجرای برنامه در یک تحقیقات علمی و ژورنالیسم محاسباتی (دیتاژورنالیسم) نیز کاربرد دارد.

تکرارپذیری و قابلیت بازتولید

یکی از محورهای اصلی در تحلیل‌های کمّی و تحقیقات علمی، تکرارپذیری و قابلیت بازتولید (Reproducibility) است. اگر تحلیلِ خود را در قالب دنباله‌ای مشخص از دستورات متنی در برنامه‌ای کامپیوتری صورت‌بندی کنیم تا به صورت سطر به سطر روی داده‌ها اجرا شود، داده‌های خام تحت یک فرایند روشن و شفاف و قدم به قدم، به اطلاعات نهایی تبدیل می‌شوند. در این رویکرد، دیگران نیز می‌توانند با در اختیار داشتن متن برنامه و داده‌ها آن را اجرا کنند و مورد ارزیابی قرار دهند یا در صورت نیاز آن را توسعه دهند. در این شیوه، هیچ یک از گام‌های تحلیل گم نمی‌شود و در صورتِ بروز خطا، رهگیری منشأ مشکل در سطرهای مختلفِ برنامه امکان‌پذیر است. در حالیکه در برخی ابزارهای تحلیل داده مانند excel و spss که متکی بر حرکت ماوس روی واسط‌های گرافیکی هستند، گام‌های میانی تحلیل به راحتی قابل مشاهده نیست و افراد نمی‌توانند مستقل از تحلیلگر به راحتی روش تحلیل را تکرار و نقد کنند.

تکرارپذیری در تحلیل داده مانند ابطال‌پذیری در فلسفه علم، اهمیتی حیاتی در صحت و سقم نتایج نهایی دارد. به همین سبب استفاده از ابزارهایی مانند پایتون که قابلیت ذخیره‌سازی تحلیل در قالب یک برنامه کامپیوتری در آن‌ها وجود دارد برای تحلیل داده کاملا ترجیح دارد. ژوپیتر نوتبوک به خاطر در اختیار قرار دادن فضایی برای درج توضیحات متنی در کنار متن برنامه‌ و خروجی‌های آن‌ مانند جدول و نمودار، تکرارپذیری را تا حد زیادی تسهیل می‌کند و به همین خاطر مورد توجه پژوهشگران و تحلیلگران واقع شده است.

برای اضافه کردن توضیحات متنی ویرایشگر را از حالت Code به حالت Markdown تغییر دهید.

Spyder

ویرایشگر اسپایدر محیطی تعاملی شامل چند پنجره را به صورت توامان برای برنامه‌نویسی و تحلیل داده در اختیار کاربران پایتون قرار می‌دهد. اگر اسپایدر را باز کنیم با صفحه‌ای شامل چند پنجره مواجه می‌شویم: 1. پنجره‌ای که می‌توانیم متن برنامه را در آن بنویسیم و آن را ویرایش و تکمیل کنیم (پنجره سمت چپ)، 2. پنجره‌ای برای نمایش متغیرها و نمودارها (سمت راست بالا) و 3. کنسول (Console) که در حقیقت همان محیط تعاملی است که می‌توان بخش‌های منتخبی از برنامه را در آن اجرا کرد و خروجی آن را دید یا بصورت مستقیم دستوری را در آن نوشت و نتیجه‌اش را مشاهده کرد (سمت راست پایین). به عنوان نمونه اگر یک عملیات محاسباتی را به همان ترتیب که در ماشین‌حساب وارد می‌کنیم در آن تایپ کنیم و enter بزنیم خروجی آن را مشاهده می‌کنیم.

RStudio

اگر کاربر R هستید احتمالا با ویرایشگر RStudio آشنا هستید و با آن کار کرده‌اید. به همین دلیل ممکن است علاقه‌مند باشید کد پایتون خود را نیز همانجا توسعه دهید. این امکان در نسخه‌های اخیر RStudio فراهم شده و می‌توان با ایجاد یک پنجره ویژه توسعه کد پایتون مفسر آن را فراخوانی کرد و در این محیط نیز کد پایتون اجرا کرد.

Rstudio به صورت پیش‌فرض در آناکوندا نصب نمی‌شود، اما امکان نصب آن از طریق آناکوندا نیز وجود دارد. پس از نصب آناکوندا می‌توانید هر از ویرایشگرها بدون واسطه آناکوندا فراخوانی کنید.

خلاصه

برای کار برنامه‌نویسی باید ابتدا اسباب آن را متناسب با نیاز و هدف خود ایجاد کنیم. توجه به تنظیمات اولیه قبل از اینکه بخواهیم وارد کار برنامه‌نویسی شویم، از منظر هزینه‌وفایده نیز اهمیت دارد، چون در بسیاری از پروژه‌های نرم‌افزاری و علوم داده، گلوگاه اصلی پروژه چیزی جز نیروی انسانی متخصص نیست به همین دلیل می‌صرفد که در ابتدای کار وقت بگذاریم و اسباب مناسب خود را پیدا کنیم. اگر می‌خواهیم با داده‌ سر و کله بزنیم، دسترسی به محیط تعاملی هنگام تحلیل داده و برنامه‌نویسی به صورت ویژه اهمیت دارد. مجموعه‌ای از ویرایشگرهای مناسب برای کار با داده در آناکوندا جمع‌آوری شده است. برای نصب پایتون و ویرایشگرهای آن، یکی از ساده‌ترین روش‌ها این است که فایل نصبی آناکوندا را دانلود و نصب کنیم و به تمامی موارد یادشده دسترسی پیدا کنیم. پس از نصب، می‌توانیم برنامه‌نویسی به زبان پایتون را با کار با مقدارها و عملگرهای پایه شروع ‌کنیم.

پاورقی و ارجاع

[1] assembly language

 زبان اسمبلی نزدیک‌ترین زبان به زبان ماشین است که برای اجرا به ترجمه و تفسیر نیازی ندارد و با فرایندی ساده‌تر به زبان ماشین تبدیل می‌شود. زبان‌های سطح بالا معمولا به جای تبدیل شدن به نسخه‌ای قابل اجرا برای ماشین ابتدا به زبان اسمبلی ترجمه و سپس به نسخه‌ای قابل اجرا برای ماشین تبدیل می‌شوند.

[2] اگرچه تلاش‌های زیادی در جریان است تا بتوان از قابلیت‌های هر دو سر طیف به صورت توامان استفاده کرد، اما این موازنه همچنان قابل ملاحظه به نظر می‌رسد.

[3] The Python Standard Library (+)

[4] Integrated Development and Learning Environment (IDLE)

[5] آناکوندا یک شرکت خصوصی است که برای ارتقای سواد داده و افزایش قابلیت استفاده منسجم‌ و کارآمد از ابزارهای متن‌باز علوم داده خدمت و محصول ارائه می‌کند.

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors