آموزش توابع در برنامه نویسی پایتون 3

3 سال پیش
 آموزش توابع در برنامه نویسی پایتون 3
امتیاز دهید post

 آموزش توابع در برنامه نویسی پایتون 3

در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، به آموزش توابع در برنامه نویسی پایتون 3 خواهیم پرداخت.

پیشنهاد ویژه : پکیج آموزش پایتون مختص بازار کار

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

همانطور که می دانید، پایتون توابع داخلی زیادی مانند print() و غیره را به شما می دهد، اما می توانید توابع خود را نیز ایجاد کنید. این توابع را توابع تعریف شده توسط کاربر می نامند.

تعریف یک تابع

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

  • بلوک های تابع با کلمه کلیدی def و سپس نام تابع و پرانتز ( ( ) شروع می شوند.
  • هر پارامتر یا آرگومان ورودی باید در داخل این پرانتز قرار گیرد. همچنین می توانید پارامترهایی را در داخل این پرانتز تعریف کنید.
  • اولین دستور یک تابع می تواند یک دستور اختیاری باشد – رشته مستندات تابع یا رشته docstring.
  • بلوک کد در هر تابع با دونقطه (:) شروع می شود و تورفتگی دارد.
  • عبارت return [expression] از یک تابع خارج می شود و به صورت اختیاری یک عبارت را به تماس گیرنده پس می دهد. یک عبارت بازگشتی بدون آرگومان همان بازگشت هیچ است.

 

به‌طور پیش‌فرض، پارامترها رفتار موقعیتی دارند و باید به همان ترتیبی که تعریف شده‌اند، آنها را اطلاع دهید.

مثال

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

 

فراخوانی یک تابع

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

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

 

هنگامی که کد بالا اجرا می شود، نتیجه زیر را ایجاد می کند –

 

عبور از مرجع در مقابل مقدار

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

 

در اینجا، ما مرجع شیء ارسال شده را حفظ می کنیم و مقادیر را در همان شیء اضافه می کنیم. بنابراین، این نتیجه زیر را ایجاد می کند –

 

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

 

پارامتر mylist محلی برای تابع changeme است. تغییر mylist در تابع تاثیری در mylist ندارد. تابع هیچ کاری انجام نمی دهد و در نهایت نتیجه زیر را ایجاد می کند –

 

آرگومان های تابع

می توانید با استفاده از انواع آرگومان های رسمی زیر یک تابع را فراخوانی کنید

  • آرگومان های مورد نیاز
  • آرگومان های کلیدواژه
  • آرگومان های پیش فرض
  • آرگومان های با طول متغیر

آرگومان های مورد نیاز

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

برای فراخوانی تابع ()printme حتما باید یک آرگومان ارسال کنید، در غیر این صورت یک خطای نحوی به صورت زیر می دهد –

 

هنگامی که کد بالا اجرا می شود، نتیجه زیر را ایجاد می کند –

 

آرگومان های کلیدواژه

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

این به شما امکان می دهد آرگومان ها را نادیده بگیرید یا آنها را خارج از نظم قرار دهید زیرا مفسر پایتون می تواند از کلمات کلیدی ارائه شده برای تطبیق مقادیر با پارامترها استفاده کند. همچنین می‌توانید به روش‌های زیر به تابع ()printme فراخوانی کلمات کلیدی برقرار کنید

 

هنگامی که کد بالا اجرا می شود، نتیجه زیر را ایجاد می کند –

 

مثال زیر تصویر واضح تری را نشان می دهد. توجه داشته باشید که ترتیب پارامترها مهم نیست.

 

هنگامی که کد بالا اجرا می شود، نتیجه زیر را ایجاد می کند –

 

آرگومان های پیش فرض

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

 

هنگامی که کد بالا اجرا می شود، نتیجه زیر را ایجاد می کند –

 

آرگومان های با طول متغیر

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

نحو برای یک تابع با آرگومان های متغیر غیرکلیدی در زیر – آورده شده است

 

یک ستاره (*) قبل از نام متغیر قرار می گیرد که مقادیر همه آرگومان های متغیر غیرکلیدی را در خود نگه می دارد. اگر هیچ آرگومان اضافی در طول فراخوانی تابع مشخص نشود، این تاپل خالی می ماند. در زیر یک مثال ساده آمده است –

 

هنگامی که کد بالا اجرا می شود، نتیجه زیر را ایجاد می کند –

 

توابع ناشناس

این توابع ناشناس نامیده می شوند زیرا با استفاده از کلمه کلیدی def به صورت استاندارد تعریف نمی شوند. می توانید از کلمه کلیدی لامبدا برای ایجاد توابع ناشناس کوچک استفاده کنید.

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

نحو توابع لامبدا فقط شامل یک عبارت واحد است که به شرح زیر است –

 

در زیر مثالی برای نشان دادن نحوه عملکرد شکل تابع لامبدا آمده است

 

هنگامی که کد بالا اجرا می شود، نتیجه زیر را ایجاد می کند –

 

دستور بازگشت

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

تمام مثال های زیر هیچ مقداری را بر نمی گرداند. می توانید مقداری را از یک تابع به صورت زیر برگردانید

 

هنگامی که کد بالا اجرا می شود، نتیجه زیر را ایجاد می کند –

 

محدوده متغیرها

همه متغیرهای یک برنامه ممکن است در همه مکان های آن برنامه قابل دسترسی نباشند. این بستگی به جایی دارد که شما یک متغیر را اعلام کرده اید.

محدوده یک متغیر، بخشی از برنامه را تعیین می کند که در آن می توانید به یک شناسه خاص دسترسی داشته باشید. دو حوزه اساسی متغیر در پایتون وجود دارد –

  • متغیرهای جهانی
  • متغیرهای محلی

متغیرهای جهانی در مقابل متغیرهای محلی

متغیرهایی که در داخل یک بدنه تابع تعریف می شوند دارای یک محدوده محلی و آنهایی که در خارج تعریف می شوند دارای یک دامنه جهانی هستند.

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

 

هنگامی که کد بالا اجرا می شود، نتیجه زیر را ایجاد می کند –

 

منبع.

 

 

لیست جلسات قبل آموزش برنامه نوبسی پایتون 3

  1. آموزش برنامه نویسی پایتون 3
  2. آموزش موارد جدید در برنامه نویسی پایتون 3
  3. آموزش مرور کلی برنامه نویسی پایتون 3
  4. آموزش راه اندازی محیط برنامه نویسی پایتون 3
  5. آموزش نحو در برنامه نویسی پایتون 3
  6. آموزش انواع متغیرها در برنامه نویسی پایتون 3
  7.  آموزش عملگرهای پایه در برنامه نویسی پایتون 3
  8.  آموزش تصمیم گیری در برنامه نویسی پایتون 3
  9.  آموزش حلقه ها در برنامه نویسی پایتون 3
  10. آموزش اعداد در برنامه نویسی پایتون 3
  11. آموزش رشته ها در برنامه نویسی پایتون 3
  12.  آموزش لیست ها در برنامه نویسی پایتون 3
  13.  آموزش تاپل ها در برنامه نویسی پایتون 3
  14. آموزش دیکشنری در برنامه نویسی پایتون 3
  15.  آموزش تاریخ و زمان در برنامه نویسی پایتون 3
امتیاز دهید post
0
برچسب ها :
نویسنده مطلب saber

دیدگاه شما

بدون دیدگاه