در این مطلب، از صفر مطلق این تابع lambda رو در پایتون آموزش میدیم! و برای فهم بهتر موضوع، چندین مثال باهم کار میکنیم. مطمئناً در خیلی از حوزهها، یکی از موارد خیلی پرکاربر همین lambda function ها است!
وقتی دارید این مطلب رو میخونید، قطعاً 500بار میگید: که چی خب؟! چه مسخره! همینو با تابع معمولی هم که میتونستیم بنویسیم!
حرفتون درسته، با تابع معمولی هم میتونستیم بنویسیم! ولی اولاً فضای بیشتری اشغال میکنه و دوماً اصلاً فرض کنیم شما با این تابع حال نمیکنید! باید بگم اصلاً میل و اشتیاف شما ذرهای مهم نیست [البته ببخشید]! ولی انقدر این تابع در کدهای مختلف پرکاربر هست که خدا میدونه!
پس باید یادش بگیرید! (و یکم که حرفهای تر بشید، قطعاً دعامون میکنید بابت این آموزش!)
بذارید کل آموزش رو با مثال ببریم جلو!
قبل از اینکه بریم سراغ ادامه کار، همین اول باهاتون اتمام حجت میکنم، که اگر آموزش زیر رو بلد نیستید، خیلی توقع فهم ادامه این مطلب رو نداشته باشید! پس اگر بلدید که هیچی! ادامه بدید! وگرنه تا مطلب زیر رو نخوندید، حتی فکر ادامه دادن مطلب رو هم نکنید!
آموزش تعریف تابع در پایتون با دستور def
قبل از شروع این مثال، تاکید میکنم که فرض من بر اینه که اتمام حجت بالا رو خوندید! اگر نخوندید، سریع برید بخونید، بعد برگردید!
فرض کنید میخواید تابعی بنویسید که هر ورودی که بهش داده میشه رو 5 برابر کنه! یکی از راههاش اینه که در پایتون بنویسید!:
def f(a): return a*5
اسم این تابع f هست! مثلاً اسم ورودیش رو گذاشتیم a ! حالا این بنده خدا، هر ورودی که بگیره (مثل a) رو میاد ضربدر 5 میکنه و بهمون برمیگردونه! (return یعنی برگردووووندَن!)
اگر بخوایم تابعی که نوشتیم رو امتحان کنیم، میتونیم به صورت زیر امتحانش کنیم:
print(f(4))
که پایتون خروجی میده 20! که درسته! چون 5 برابرِ عدد 4 میشه 20 دیگه!
حالا بیاید باهم زووور بزنیم تا همینو با lambda fucntion بنویسیم!
جواب میشه:
g=lambda a:a*5
اون lambda که اسم کلیدی است که پایتون در نظر میگیره و باید باشه!
جلوی اون lambda یه سری چیز میز نوشتیم! اولین چیز، ورودی تابع است! یعنی این تابع ورودیای مثل a رو میگیره!
بعد : میگیم که قراره با اون ورودی بندهخدا چه کنیم! (بعد : گفتیم که قراره ورودی رو 5 برابر کنیم!)
والسّلام! پس: قبل از : اسم ورودی رو میگیم، بعدِ : هم کاری که قراره تابع بکنه رو میگیم! همین!
اسم این lambda function رو دوست داشتیم در اینجا بذاریم g (پس داستان اون g هم مشخص شد!)
حالا برای این هم یک مثال ببینیم تا چک کنیم ببینم داره درست کار میکنه یا نه!
print(g(4))
بازهم خروجی میشه 20! الحمداله داره درست کار میکنه!
خب! حالا قراره تابعی بنویسیم که دو عدد میگیره! و بعد به عنوان خروجی ضرب این دو عدد رو برمیگردوووونه!
روش اول: با تعریف یک تابع ساده:
def f(a,b): return a*b
همینطور که مشخصه، دوتا ورودی میگیره (مثلاً اسم ورودیها رو گذاشتیم a و b! ولی هر اسم دیگهای هم میتونست باشه!)
و در خروجی میاد، ضرب این دو بزرگوار رو return میکنه (برمیگردوووونه!)
برای اینکه مطمئن باشیم که درست نوشتیم، بیاید یه مثال هم باهم امتحان کنیم!
print(f(100,2))
خروجی این بندهخدا میشه 200 و الحمداله درسته!
روش دوم: با lambda function :
g=lambda a,b:a*b
اینجا هم اولاً اون lambda که یک کلمه کلیدی است و باید باشه!
اون چیزایِ قبلِ : ورودیهای تابع اند و بعدِ : هم چیزی است که قراره تابع خروجی بده!
در نهایت حال کردیم اسم تابع رو بذاریم g (حرفیه؟! هر اسمی که دوست دارید میتونید بذارید دیگه!)
بازهم واسه مطمئن شدن از این بابت که کدموون داره درست کار میکنه، بریم که یک مثال داشته باشیم:
print(g(100,2))
خروجی این هم 200 میشه و بازهم درسته!
جواب کلی اینه که آره! ولی قطعاً الان شاید به چشمتون این تابع خیلی مضحک و مسخره جلوه کنه! ولی سخت در اشتباهید! به مرور انقدر ازش کاربر میبینید و ما هم میگید که قطعاً دعامووون میکنید! مثلاً تابع map که آموزش بعدی وبسایتمون هست! یکی از جولانگاههای این lambda function ها است!
ولی نیازه که شما برای درک بهتر، حتماً کاربردهاش مختلفش رو ببینید و کمی هم تجربه کسب کنید، تا قدر این تابع رو بدونید!
تعداد دیدگاه | 2 |
تعداد بازدید | 4.8K |
تاریخ انتشار | 21/11/2019 |
تاریخ بروزرسانی | 21/11/2019 |
نویسنده | گروه آموزشی کولاک |