وبلاگ سجاد نجفی

تجربه های وبگردی من

وبلاگ سجاد نجفی

تجربه های وبگردی من

وبلاگ سجاد نجفی

با خودم گفتم من که هر چند وقت یه بار دنبال مطلبی در اینترنت‌ام تا کار خودمو راه بندازم، خب وقتی کارم راه افتاد و اون مطلب رو در وب پیدا کردم، در یک وبلاگ انتشار بدم تا هم خودم اون مطالب رو داشته باشم و هم به کسایی که دنبال همون چیزایی‌اند که من دنبالشون بودم{!!!} کمکی کرده باشم!

پیام های کوتاه
۲۵
خرداد ۹۸

سلام دوستان

با یک قسمت دیگه از سری آموزش های پایتون در خدمتتونم، در این بخش میخوایم با توابع و کارایی اون در پایتون آشنا بشیم.

توابع در پایتون

به طور کلی توابع مجموعه دستورات بسته بندی شده هستند که یه کار خاص که ما با اون دستورات تعیین کردیم برامون انجام میدن.

برای تعریف تابع از کلمه کلیدی def استفاده میکنیم. مثال:

>>> def hello_func():

	دستورات

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

نکته دو: توجه کنید که شما نمیتونید یک تابع تعریف کنید که هیچ دستوری نداشته باشه بنابراین کد زیر اشتباهه چون دستوراتش رو وارد نکردیم:

def hello_func():

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

>>> def hello_func():
pass

در واقع تابع فوق هیچ کاری انجام نمیده.

اجرا کردن تابع

برای اجرا کردن تابع باید پرانتز جلوی اون رو هم بنویسیم(اگر پارامتر داشت با پارامترهاش) باید بنویسیم. اگر ننویسیم و اجرا کنیم ببینید با دستور چاپ سیستم چی می بینه:

>>> print(hello_func)
<function hello_func at 0x02DF7468>

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

اما اگر پرانتز بذاریم:

>>> print(hello_func())
None

همونطور که میبینید پاسخ None اومده یعنی هیچ، و این درسته چون تابع ما هیچ کاری انجام نمیده.

اما اجازه بدید یک دستور به تابع اضافه کنیم. برای اجرای تابع نیاز به نوشتن print نداریم و فقط با نوشتن نام تابع می تونیم اون رو اجرا کنیم:

>>> def hello_func():
print('Hello Function!')
>>> hello_func()
Hello Function!

استفاده از توابع مزایای زیادی داره برای مثال ما میخوایم یک متن رو در چندین جای مختلف در برنامه تکرار کنیم. خب می تونیم برای اون تابعی مثل مثال بالا ایجاد کنیم و هر جا بخوایم استفاده کنیم، فقط لازمه نام تابع رو بنویسیم. حالا تصور کنید من اصل متن رو در جاهای مختلف برنامه ام استفاده می کردم و بعد از اتمام کار، رئیسم از بیرون میومد و میگفت یه جای متن باید اصلاح بشه! اونوقت باید یکی یکی توی جاهای مختلف اصلاح رو انجام میدادم، اما با وجود تابع فقط کافیه توی تابع اصلاح انجام بشه و تغییرات همه جا اعمال میشه.

به جای دستور print در تابع ما میتونیم از دستور return استفاده کنیم. هنگام اجرای تابع در واقع خروجی ما با مقدار بازگشت داده شده توسط دستورreturn برابر خواهد شد. ببینید:

اگر از دستور print بعد از تابع استفاده نکنیم هیچ نتیجه ای به ما نخواهد داد. چون فقط یک رشته رو برگردوندیم و هیچ کار دیگه ای انجام ندادیم:

>>> def hello_func():
return 'Hello Function!'

برای این که خروجی برنامه رو درست ببینیم باید بدونیم که خروجی تابع ما یک رشته هست و باید برخورد ما مثل برخورد با رشته باشه:

>>> print(hello_func())
Hello Function!

اگر دقیقا این درک رو از خروجی توابع داشته باشید خواهید دونست که هر برخورد و تغییری که ما با رشته ها انجام میدادیم الان هم میتونیم با خروجی تابعمون انجام بدیم و معتبر خواهد بود برای مثال:

>>> print(hello_func().upper())
HELLO FUNCTION!

برای توضیح بیشتر تابع رو دقیقا مثل یک دستگاه تصور کنید که ورودی رو میگیره و محصول خروجی اون رو شما به عنوان یک تابع اجرا می کنید.

اختصاص آرگومان(پارامتر) به تابع

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

این بخش رو به صورت مثال ببینید و به نوعی یادگیری با مثال داشته باشید:

اختصاص یک آرگومان به تابع:

>>> def hello_func(greeting):
return '{} Function.'.format(greeting)
>>> print(hello_func('Hi'))
Hi Function.

توجه کنید که وقتی میخواید تابع رو اجرا کنید حتما باید آرگومانش رو در نظر بگیرید و براش مقدار بذارید.(اینجا hi گذاشتیم)

ایجاد دو آرگومان و مقدار پیشفرض و تغییر مقدار پیشفرض در خروجی

>>> def hello_func(greeting,name='You'):
return '{}, {}'.format(greeting, name)
>>> print(hello_func('Hi', name='Corey'))
Hi, Corey

در مثال بالا نام رو توی تعریف آرگومان You گذاشتیم و توی اجرا اون رو با Corey جایگزین کردیم. اگه مثل مثال قبلی از کلا آرگومان name رو توی دستور print نمی نوشتیم خروجی این می‌شد: 

Hi, You

دوستان بعد از این مثال آقای شفر یک مثال از کتابخونه توابع پایتون میاره و توضیح میده که خودتون توی فیلم این قسمت ببینید بهتره تا این که من توضیح بدم. «اینجا بزنید و ببینید»

امیدوارم از این آموزش لذت برده باشین؛ نظر یادتون نره :)

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

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی