فانکشن تا زمانی که ازش استفاده نکنی هیچ کاری نمی کنه + هدف از تابع چیه؟ اینکه یک چیزی داشته باشیم که هر زمان خواستیم یک سری ورودی بهش بدیم یک عملیات تکراری رو برامون انجام بده.
اگر اینجوری نبود مثلا فرض کن جمع اعداد تابعی براش نبود هر بار مجبور بودیم لوپ بزنیم و کل اعداد رو جمع کنیم. (جالب اینکه شدن میشه اینکار کرد و برنامه کار هم می کنه)
ولی یک مشکلی به وجود میاره فرض کن کار بالا را تحویل یک جایی دادیم و تموم شده. بعد از ما بخواد هر بار این جمع اعداد را حساب کردیم هر بار گزارش بدیم که ما جمع را محاسبه کردیم.
در این صورت باید بیای از اول 20 جارو چک کنی. ولی خوب اگر یک جای مرکزی اینو نوشته بودی (به نام یک تابع) همون یک جا رو تغییر بدی کار رو جمع می کنه.
تابع یا همون فانکشن در واقع به عنوان یک نگه دارنده تعدادی کد عمل میکنه
پارامتر چیزهایی هستش که هر تابع میتونه بگیره.
مثلا تابع ضرب که عدد الف و ب رو میگیره و اینارو در هم ضرب میکنه
به الف و ب میگن پارامتر
پس اینجوریه که
دستور عمل میشه فانکشن
و چیزی که به دستور عمل میدیم انجامش بده میشه پارامتر
مثل اینکه ضرب جمع میشه فانکشن ولی عددی که بهش میدیم بهش مبشه پارامتر
تو سایت فروشگاهیی
اضافه کردن به سبد خرید میشه همون تابع
محصولی که میره داخلش میشه پارامتر درست فهمیدم؟
درود
ببینید به صورت خلاصه
فانکشن یک بلاکی از کد هست که یک اسم مشخص داره و یک کار و یا پردازش مشخصی رو انجام میده و میتونید اون بلاک کد رو بار ها توی کد هاتون استفاده کنید و از تکرار کد جلوگیری کنید
این میشه تعریف رسمیش
حالا یک سری توابع میتونن ورودی بگیرن و دقیقا به این ورودی ها میگن پارامتر و اون تابع میتونه اون ورودی هارو که از قبل مشخص شده رو از بیروت بلاک کد بگیره و پردازش و کار مشخص رو روش انجام بده
حالا فانکشن 3 بخش اصلی داره که اولیش اسم فانکشن هست دوم کاری که انجام میده و یا مقداری که بهمون پس میده و آخری هم صدا زدن و اجرا کردنش
مثلا برای درک بهتر میتونید به این کد پایتون دقت کنید:
def add(a, b):
return a + b
این یه تابع ساده توی پایتون هست که یک کار مشخص انجام میده و نتیجه رو برامون برمیگردونه
اون a و b میشن پارامتر ها و یا ورودی های تابع مون و تابع میاد و عملیه جمع رو روی این دوتا ورودی که قراره بعدا بهشون بدیم اجرا میکنه و بعد نتیجه رو برمیگردونه با return که این قضیه هم توی توابع خیلی مهمن و باید بدونید
وقتی تابع چیزی رو برگردونه یعنی ما میتونیم اون رو توی متغییر هم ذخیره کنیم و بعدا ازش استفاده کنیم
استفاده و روش صدا زدن هم اینجوریه:
res = add(1, 4)
res_2 = add(2, 5)
print(res)
print(res_2)
که خروجی اولی دقیقا میشه 5 و دومی هم میشه 7
حالا ما توابع داریم که هیچ مقداری رو برنمیگردونن و یا یک کار مشخصی رو انجام میدن و تمام و میتونن چیزی بهمون برگردونن
حالا میتونه هر کاری باشه
مثلا:
def add(a, b):
print(a + b)
این تابع دقیقا همون کار قبلی رو انجام میده ک همون پارامتر هارو میگیره ولی به جای اینکه برامون نتیجه رو برگردونه میاد و نتیجه رو مستقیم برامون نشون میده
add(1, 10)
add(2, 4)
خروجی اولی 11 و دومی 6 میشه
تویی خروجی ها هم خروجی اولی که دادی فکر کنم پرکاربرد تر باشه چون خروجی دو فقط جواب نمایش میده
ولی تو خروجی دوم
مثلا فروشگاه جمع محصول میزنه
بعد جمع محصول میتونیم با یک فانکشن دیگه انتقال بدیم به تکمیل خرید و پرداخت
ولی تو خروجی دوم که دادی این امکان پذیر نیست؟ درست گفتم
این رو نمیشه بگیم کدوم پر کاربرد تره چون هر کدوم استفاده خاص خودشون رو دارن
میتونن مقداری برگردونن و یا نه میتونن برگردونن و نسبت به برنامه ای که مینویسید متفاوته
ولی خب درست متوجه شدین