آشنایی با فانکشن از پیش ساخته شده ی هلپ در زبان برنامه نویسی پایتون


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

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

خوشبختانه زبان پایتون با برخورداری از یک سیستم راهنمای کامل و جامع، بخش زیادی از نیاز برنامه نویسان را برای راهنمایی گرفتن در مورد مفاهیم این زبان برنامه نویسی رفع می کند. برای این منظور می توان از فانکشن از پیش ساخته شده ی ()help استفاده کرد. این فانکشن بیشتر در زمان کار با حالت تعاملی محیط برنامه نویسی پایتون استفاده می شود. در تصویر زیر می بینید که چگونه با فراخوانی فانکشن ()help در حالت تعاملی پایتون، وارد سیستم هلپ می شویم:

همان طور که در تصویر بالا مشخص است با ورود به حالت هلپ پایتون، کامند پرامپت یا همان علامت <<< تبدیل به هلپ پرامپت یا <help می شود. تا زمانی که هلپ پرامپت را در پنجره می بینید در حالت هلپ پایتون هستید و نمی توانید دستوری را اجرا کنید. برای خروج از این حالت و بازگشت به حالت تعامل با مفسر پایتون کافی است یا دستور quit را وارد کنید یا بدون تایپ کردن چیزی در جلوی هلپ پرامپت یک بار کلید اینتر را فشار دهید. در این صورت سیستم هلپ با نمایش یک پیغام راهنما مبنی بر خروج از سیستم هلپ و نحوه ی استفاده از فانکشن هلپ در زمان غیر فعال بودن این سیستم بسته می شود و مجدداً کامند پرامپت ظاهر می شود و می توان شروع به وارد کردن دستورات برنامه کرد:

حال ببینیم که برای استفاده از سیستم هلپ چگونه باید سؤال خود را مطرح کنیم. بعد از ورود به حالت هلپ در همان ابتدا نکات مفیدی در مورد نوع سؤالاتی که می توان در این جا مطرح کرد آمده است. بر اساس این نکات برای جستجو در سیستم چهار عنوان اصلی وجود دارد:

modules (ماژول ها)
keywords (کلمات کلیدی)
symbols (نمادها یا نشانه های خاصی که مفهوم ویژه ای برای مفسر پایتون دارند)
topics (مباحث)

برای راهنمایی گرفتن در مورد هر یک از موضوعات، کافی است عنوان آن را در جلوی هلپ پرامپت وارد کنید. برای مثال با تایپ عنوان modules سیستم هلپ لیستی از ماژول های در دسترس را ارائه می کند، یا با وارد کردن عبارت keywords لیست تمام کیوردهای پایتون نمایش داده می شود:

همان طور که می بینید سیستم هلپ کاربران را راهنمایی می کند تا در صورتی که بخواهند در مورد هر یک از عناوین فهرست شده راهنمایی بگیرند کافی است تنها آن عنوان را وارد کنند و کلید اینتر را بزنند تا توضیحات مبحث مورد نظر نمایش داده شود. برای مثال ما لیستی از تمام نمادها را می گیریم و در میان آن ها نماد =! را می بینیم که در مورد آن چیزی نمی دانیم. با تایپ کردن نماد =! و فشردن کلید اینتر، در مورد این نماد راهنمایی می گیریم:

دقت کنید که در این حالت نیز پایتون نسبت به بزرگ و کوچک بودن حروف حساس است و برای وارد کردن عناوین باید آن ها را به شکل درست تایپ کنید. برای مثال در میان موضوعات عنوان FUNCTIONS وجود دارد که در مورد توابع توضیح می دهد. اگر این عنوان را بدون رعایت این نکته وارد کنیم، سیستم اعلام می کند که هیچ سندی در مورد این عنوان وجود ندارد:

همان طور که می بینید زمانی که عنوان FUNCTIONS را به صورت درست و با حروف بزرگ وارد می کنیم توضیحات سند راهنمای مربوط به آن نمایش داده می شود.

به جز جستجو در عنوان های مشخص شده، گاهی پیش می آید که شما با بعضی از دستورات پایتون رو به رو می شوید که نمی دانید چه کارکردی دارند یا می خواهید اطلاعات بیش تری در مورد آن ها پیدا کنید. در این حالت می توانید آن دستور را به صورت ساده در جلوی هلپ پرامپت وارد کنید و کلید اینتر را فشار دهید تا توضیحات آن را ببینید. برای مثال ما قبلاً با دستور ()print کار کرده ایم و اکنون می خواهیم در مورد آن راهنمایی بگیریم. برای این کار عبارت print را بدون قرار دادن پرانتزها در جلوی آن وارد می کنیم. علت حذف پرانتزها این است که با قرار دادن آن ها مفسر پایتون می فهمید باید فانکشن پرینت را اجرا کند، اما در این جا ما می خواهیم توضیحاتی در مورد این فانکشن به دست آوریم نه این که آن را اجرا کنیم:

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

استفاده از اسناد راهنمای پایتون به این صورت که وارد سیستم هلپ آن شوید برای مواقعی کاربرد دارد که شما دقیقاً نمی دانید به دنبال چه چیزی هستید و نیاز به اطلاعات متعددی دارید. زمانی که شما در حال کدنویسی هستید و ناگهان در مورد چیزی نیاز به راهنمایی پیدا می کنید می توانید باز هم از فانکشن هلپ استفاده کنید، بدون این که نیاز باشد سیستم هلپ پایتون را فعال کنید. برای این کار کافی است در زمان فراخوانی فانکشن ()help در میان پرانتزهای آن یک آرگومان قرار دهید.

اگر آرگومان فانکشن هلپ یک استرینگ باشد، در این صورت سیستم به دنبال این استرینگ به عنوان نام یک ماژول، فانکشن، کلاس، متد، کیورد و یا موضوع مستند سازی شده ای می گردد و صفحه ی راهنما را نمایش می دهد. برای مثال اگر بخواهیم در مورد نوع داده های عدد صحیح اطلاعاتی را به دست آوریم دستور ('help('int را وارد می کنیم. برای مثال، در تصویر زیر می بینید که چطور فانکشن هلپ را با آرگومان استرینگ 'keywords' فراخوانده ایم تا در مورد موضوع کیوردها راهنمایی بگیریم:

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

اگر آرگومان فانکشن هر نوع آبجکت یا شیء دیگری به جز استرینگ باشد سیستم به دنبال صفحه ی راهنما در مورد آن آبجکت می گردد. برای مثال می دانیم که عدد صحیح 2 یک آبجکت از کلاس int است. اگر استرینگ "2" را به عنوان آرگومان به فانکشن هلپ بدهیم می بینیم که هیچ سند راهنمای خاصی در مورد این آبجکت خاص وجود ندارد، با این حال اگر خود عدد صحیح 2 یا هر آبجکت دیگری را به عنوان آرگومان به فانکشن هلپ بدهیم سیستم به دنبال توضیحات مربوط به کلاس آن ابجکت می گردد و آن را در کنسول نمایش می دهد:

البته علاوه بر فانکشن هلپ می توانید از امکانات دیگر بسته ی نصبی پایتون استفاده کنید. برای مثال اسناد پایتون که به همراه این پکیج دانلود می شوند حاوی توضیحات مفصلی در مورد موضوعات مختلف زبان پایتون است. برای دسترسی به این اسناد از طریق پنجره ی شِل آیدل می توانید از منوی Help گزینه ی Python Docs را انتخاب کنید یا کلید F1 را فشار دهید تا پنجره ی اسناد پایتون باز شود:

همان طور که می بینید در منوی هلپ گزینه های دیگری نیز نظیر Help IDLE وجود دارد که با انتخاب آن پنجره ای باز خواهد شد که نکات راهنمای مفیدی در مورد کار با ویرایش گر آیدل ارائه می دهد.

همان طور که گفتیم در پنجره ی اسناد پایتون توضیحات جامعی درباره تمام اجزای این زبان برنامه نویسی ارائه شده است. به علاوه این که از طریق گزینه ی Search در ساید بار سمت چپ می توانید سند راهنمای مربوط به موضوع مورد علاقه ی خود را جستجو کنید:

لیست نظرات
کاربر میهمان
دیدگاه شما چیست؟
کاربر میهمان
کاربر میهمان
کاربر میهمان
با سلام و تشکر از تدریس بسیار عالی شما که همراه با پوشش بسیاری از نکات هست. از این قسمت سوالی داشتم درباره اینکه 4 عنوان اصلی برای هلپ وجود دارد میخواستم بدونم functions ویا methods و یا از این دست جزو این 4 عنوان نیست؟ چطور بفهمیم چیزهای دیگری هم مانند این کلمات وجود دارد مثلا پروسیجر... که از آنها هم هلپ بگیریم.
محمدهادی
محمدهادی
دقت کنید که در این حالت نیز پایتون نسبت به بزرگ و کوچک بودن حروف حساس است و برای وارد کردن عناوین باید آن ها را به شکل درست تایپ کنید. برای مثال در میان موضوعات عنوان FUNCTIONS وجود دارد که در مورد توابع توضیح می دهد. اگر این عنوان را بدون رعایت این نکته وارد کنیم، سیستم اعلام می کند که هیچ سندی در مورد این عنوان وجود ندارد:

در پاسخ به

فردی
فردی
ممنونم. اما منظورم این بود مثلا METHODS یا همان FUNCTIONS مگه خودشون جدا از 4 عنوان اصلی سیستم برای هلپ گرفتن نیستند؟ چطور بفهمیم چیزهای دیگری نیز وجود دارند؟

در پاسخ به