آموزش نوشتن تابع در پایتون : آموزش کار با function در پایتون

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

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

توابع می توانند زمانی که فراخوانی صورت می گیرد مقادیر را دریافت کرده و در صورت لزوم به عنوان نتیجه مقداری را برگرداند.

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

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

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

مفهوم تابع از ریاضیات وارد برنامه نویسی شده است. توابع ابزارهایی هستند برای اینکه بتوانند نتایج یا خروجی را براساس داده های ورودی حساب کنند.

زمانی که تمام قسمت های اصلی برنامه با چنین رویکردی توسعه یابد می توانید به این شیوه «برنامه نویسی تابعی» یا Functional Programming نیز گفته شود.

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

سینتکس تابع در برنامه نویسی پایتون مانند سایر دستورات مرکب که شامل یک سرآیند و یک بدنه می باشد .

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

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

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

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

در کد بالا value مقداری است که به وسیله return به محلی که فراخوانی شده است برمی گردد.

value قادر است صراحتا یک مقدار نباشد بلکه می تواند یک عبارت هم باشد مانند : parm1**2  و یا parm1>3 در این صورت نتیجه عبارتی که ارزیابی می شود بعدا بازگردانی خواهد شد .

زمانیکه value بازنگردد ، None برمی گردد.

زمانی که می خواهید مقدار را در تابع بازگردانید به صورت یکنواخت عمل کنید . اگر از دستورات ترکیبی مانند if/else استفاده کردید . یا هیچکدام از بخش ها نباید به صراحت return داشته باشند یا اگر لازم است که یک بخش مقداری را برگرداند بقیه قسمت ها مقداری را برگردانند که قرار است این مقدار None در نظر گرفته شود.

در پایتون ، تابع یک موجودیت ”first-class” می باشد که یعنی تابع را می توانید مانند سایر اشیا به صورت پویا ایجاد، نابود و یا به عنوان آرگومان به توابع دیگر ارسال کرد و به عنوان یک نتیجه به وسیله return بازگرداند.

در نهایت می توانید تابع را داخل بدنه دستورات کنترلی if,whileو غیره نیز تعریف کرد.

فضاهای نام و حوزه

در برنامه های پایتون تعداد زیادی نام نیز وجود دراد و برای مثال می توان به نام توابع ، متغیرها، نام کلاس و غیره اشاره کرد .

برای شناسایی اشیا لازم است که نام های منجصربه فردی در نظر بگیرید .

رعایت چنین چیزی در برنامه حتی برنامه های کوچک کار آسانی نیست.

در زبان برنامه نویسی پایتون برای جلوگیری و دسته بندی از تداخل نام ها ، ساختاری با عنوان Namespaces «فضاهای نام» در نظر گرفته شده است.

هر فضا معمولا قسمتی از نام های داخل برنامه را در برمی گیرد.

در کل فضاهای نام پایتون در سه سطح تو در تو ، محلی (Local) ، سراسری (Global) و Built-in نشان داده می شود.

هر ماژول در پایتون یک فضانام سراسری می باشد که نسبت به فضا نام دیگر ماژول ها ایزوله می باشد .

معمولا فضانام تمام ماژول ها داخل فضانام بزرگتری ایجاد می شوند که به فضانام Built-in شناخته می شود.

نام تمامی توابع آماده مانند این است که نیاز است ماژول خاصی را import کنیم و در هر جای برنامه به توابع آماده Built-in  دسترسی داشته باشیم.

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

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

  1. تابعی که نه ورودی و نه خروجی داشته باشد
  2. تابعی که هیچ ورودی ندارد اما خروجی دارد
  3. تابعی که ورودی دارد اما هیچگونه خروجی ندارد
  4. تابعی که دارای ورودی و خروجی می باشد.

1- تابعی که نه ورودی و نه خروجی داشته باشد :

2- تابعی که هیچ ورودی ندارد اما خروجی دارد:

3-تابعی که ورودی دارد اما هیچگونه خروجی ندارد :

4-تابعی که هم ورودی دارد هم خروجی :

شما می توانید تابع را از لحاظ آرگومان های ورودی به صورت زیر فراخوانی کنید:

آرگومان های اجباری : آرگومان های اجباری در مکان و ترتیب قرارگیری درست خود به تابع ارسال می شوند در غیراینصورت شاهد خطای syntax خواهید بود.

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

آرگومان ها را توسط اسم یا پارامتر شناسایی می کند  به همین ترتیب پارامترها اهمیتی ندارند و می توانند ترتیب آن ها را تغییر داد.

زیرا مفسر پایتون قادر است به وسیله کلیدواژه ، مقادیر را به پارامترها ربط دهد .

زمانی که فراخوانی علاوه بر مقدار موردنظر برای آرگومان ، نام آرگومان هم قبل از علامت “=” باید باشد.

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

آرگومان هی variable-length : گاهی لازم است یک تابع را با آرگومان های بیشتری با توجه به آنچه در زمان تعریف تابع مشخص می شود پرداز و فراخوانی کنید.

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

توابع داخلی پایتون

()Abs : قدر مطلق عدد را می گیرد

()bin : تبدیل عدد صحیح به رشته باینری

()chr : به کمک آرگومان ورودی عدد صحیح را نشان می دهد.

()enumerate : یک شی دنبال کننده یا تکرار کننده را به عنوان آرگومان ورودی دریافت می کند و یک شی برمی گرداند.

()eval : یک شی رشته را دریافت می کند و متن را به شکل کد پایتون تفسیر می کند.

()float : ورودی را به نوع Float l تبدیل می کند.

()input: یک سطر از کاربر گرفته و در قالب یک شی از نوع str برمی گرداند.

()int : از این تابع می توان برای تبدیل به نوع int استفاده کرد.

()len : طول یک شی را برمی گرداند.

map(function,iterable) : یک تابع و یک ل یست را در ورودی می گیرد و تک تک المان های آن را به تابع ارسال کرده و خروجی آن تابع را در لیست جدیدی قرار می دهد.

()max : بزرگترین آیتم یا دنباله را برمی گرداند.

()min : کوچکترین آیتم یا دنباله را برمی گرداند.

()reversed: معکوس یک دنباله برمی گرداند.

()sorted :مرتب سازی یک  لیست

()str : از این تابع برای تبدیل یک مقدار به رشته استفاده می کند.

()tuple : می توانید یک رشته ، یک لیست را به یک tuple تبدیل کنید.

()list :مانند tuple عمل می کند.

()type : نوع شی داده شده را زمانی که یک آرگومان پاس داده شود برمی گرداند.

()zip : دو دنباله را به هم پیوند می زند.

 

 

 

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

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.