روز گذشته با توابع پایتون آشنا شدیم. نحوه فراخوانی آنها و شکل به کارگیری توابع در کدهای برنامه را نیز مرور کردیم. همچنین به توابع ریاضی، توابع پیش فرض پایتون و ماژول ها اشاره کردیم و مثال های ساده ای از روش هایی که توابع می توانند به نوشتن برنامه کمک کنند را یاد گرفتیم. در بخش هفتم از آموزش برنامه نویسی پایتون خواهیم دید چطور می توان توابع جدیدی معرفی کرد و از آنها برای حل معادلات و مسائل کمک گرفت.
همان طور که اشاره شد پیشتر از توابعی استفاده کردیم که به صورت پیش فرض در پایتون وجود دارند و این نکته را نیز در نظر گرفتیم که می توان توابع جدیدی بنا به صورت مسائلی که با آنها مواجه می شویم ساخت. تعریف یک تابع عبارت است از مشخص کردن اسم آن برای فراخوانی های بعدی و سپس دستوراتی که نیاز داریم یک تابع انجام دهد. نمونه ای از تعریف یک تابع جدید به صورت زیر است:
همان طور که مشاهده می کنید در این مثال تابعی که تعریف شده games نام دارد. پیش از نام تابع مورد نیاز باید عبارت def نوشته شود که نشان دهنده عملیات تعریف یک تابع است. همچنین پس از نام تابع می بایست علامت های پرانتز به صورت () و در نهایت دو نقطه قرار گیرند. دو خط بعدی عملیاتی هستند که تابع با هر بار فراخوانی انجام می دهد. در این مثال تابع تنها نام دو بازی را در دو خط مختلف چاپ خواهد کرد. خط انتهایی مثال بالا نیز نحوه فراخوانی یک تابع است. در این مثال هدف از برنامه تنها فراخوانی تابع games بدون هیچ عملیات دیگری بوده و به همین دلیل از دستور print استفاده شده. توجه کنید که تابع games همیشه به صورت games () فراخوانی می شود و اگر دستور شما print (game) باشد با خطا مواجه می شوید. نتیجه اجرای این خط دستور به صورت زیر خواهد بود (ممکن است در ادیتورهای مختلف آنچه مشاهده می کنید کمی متفاوت باشد اما در نهایت خروجی به این صورت خواهد بود).
* فرض کنید قصد دارید خودتان همین تابع را در پایتون نوشته و نتیجه آن را مشاهده کنید. در جلسات قبلی برنامه های مورد نیاز برای برنامه نویسی را معرفی کردیم که اولین آنها خود پایتون بود. پس از دانلود و نصب پایتون باید به این صورت عمل کنید: در منوی استارت ویندوز عبارت cmd را تایپ کرده و سپس command prompt را انتخاب کنید. پس از باز شدن پنجره، عبارت python را تایپ کرده و enter را فشار دهید. در نتیجه با چنین دستوری روبرو خواهید شد:
نمایش این خطوط به معنی آماده بودن پنجره دستورات برای اجرای خطوط کد پایتون است. حالا می توانید تابع games را به صورتی که یاد گرفتیم در آن تعریف کرده و با دستور print نتیجه کار خود را مشاهده کنید.
در تعریف، به اولین خط تعریف یک تابع header (هدر) و به سایر خطوط body (بادی یا بدنه) گفته می شود. همان طور که اشاره شد همیشه باید در انتهای هدر از : استفاده کنید و بدنه تعریف تابع هم همیشه باید جلوتر نوشته شود که برای این کار کافی است پس از رفتن به خط جدید کلید tab را فشار دهید.
زمانی که یک تابع را تعریف کردید می توانید هر جای برنامه و کدی که در حال نوشتن آن هستید از تابع استفاده کنید. حتی امکان استفاده از یک تابع درون یک تابع دیگر را نیز خواهید داشت.
در اینجا باید به چند نکته در رابطه با توابع توجه داشته باشید. اجرای توابع درست مانند اجرای سایر دستورات اتجام می شود. دستورات درون یک تابع تا زمانی که تابع فراخوانی نشده اجرا نخواهند شد و همچنین تعریف یک تابع به تنهایی هیچ خروجی نخواهد داشت. همیشه به یاد داشته باشید که ابتدا باید یک تابع را تعریف کرده و سپس آن را فراخوانی کنید و عکس این کار امکان پذیر نیست. زمانی که یک برنامه با چندین خط کد نوشته باشید ممکن است نیاز به تعریف چندین تابع وجود داشته باشد. تعریف کردن توابع در میانه نوشتن یک برنامه هیچ مشکلی برای اجرای کد ایجاد نمی کند و می توانید هر زمان که نیاز به یک تابع جدید داشتید فورا آن را تعریف کرده و سپس فراخوانی کنید.
برخی از توابع پیش فرض پایتون نیازمند یک آرگومان هم هستند. برای مثال زمانی که تابع math.sin را فراخوانی می کنید (محاسبه سینوس یک زاویه از ماژول math) می بایست حتما یک عدد را هم به عنوان آرگومان در اختیار برنامه قرار دهید. برخی از توابع هستند که به دو عدد نیاز دارند. در تعریف توابع همچنین می توانید یک متغیر را به عنوان آرگومان معرفی کنید.
نکته مهم دیگر درباره توابع آن است که متغیرهایی که درون یک تابع تعریف می شوند فقط داخل آن وجود خواهند داشت. فرض کنید در هنگام تعریف یک تابع متغیری به نام test را با یک مقدار مشخص تعریف کرده و از آن استفاده کرده اید. زمانی که تابع فراخوانی شده و عملیات آن به پایان برسد متغیر test هم وجود نخواهد داشت. در این شرایط گفته می شود متغیرها و پارامترهای یک تابع داخلی یا local هستند.
فراخوانی تابع مشخصی از یک ماژول به وسیله دستور from
همان طور که دیدید تابع هایی به صورت پیش فرض در پایتون وجود دارند. مثالی که از آن استفاده می کنیم ماژول math است که شامل توابعی نظیر سینوس و کسینوس و همچنین اعداد ثابتی مانند پی است. قبلا یاد گرفتیم که می توان ماژول ها را با استفاده از dot notation فراخوانی کرد.
اما می توانید با دستور from تنها یک تابع مشخص از ماژول math را هم فراخوانی کنید. به عنوان مثال برای این کار کافیست تنها به جای استفاده از عبارت import math و سپس استفاده از pi، مستقیما از from math import pi استفاده کنید.
در جلسات آینده به تدریج به دستورات پر کاربردی مانند if، elif، while و for در پایتون خواهیم پرداخت.
ممنون از این مقاله کاربردی