Google Play badge

تعریف توابع


تعریف توابع

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

مقدمه

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

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

یک تابع چیست؟

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

به عنوان مثال، یک عملکرد ساده ممکن است مانند یک کلید چراغ به نظر برسد. وقتی سوئیچ را می چرخانید، چراغ روشن می شود. به طور مشابه، هنگامی که شما یک تابع را فراخوانی می کنید، رایانه اقدامات درون آن را انجام می دهد. این کار شما را مرتب نگه می دارد و پیدا کردن و رفع هر گونه مشکل را ساده می کند.

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

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

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

چگونه یک تابع را تعریف کنیم

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

مثال:

 def say_hello():
    چاپ ("سلام، دوست!")
  

در این مثال، تابع say_hello نامیده می شود. کلمه def به کامپیوتر می گوید که ما یک تابع را تعریف می کنیم. این عملکرد یک کار را انجام می دهد: یک پیام دوستانه را روی صفحه چاپ می کند.

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

نمونه های ساده توابع

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

مثال 1: تابع احوالپرسی

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

کد:

 سلام و احوالپرسی (نام):
    print ("سلام، " + نام + "!")
  
# فراخوانی تابع با نام "آلیس"
سلام ("آلیس")
  

توضیح گام به گام:

مثال 2: تابع جمع

در مثال دوم تابعی می نویسیم که دو عدد را جمع می کند. این مانند یک ماشین حساب کوچک است که اعداد را با هم جمع می کند.

کد:

 def add_numbers (num1, num2):
    نتیجه = num1 + num2
    print ("مجموع:"، نتیجه)
  
# فراخوانی تابع با اعداد 3 و 5
افزودن_اعداد (3، 5)
  

توضیح گام به گام:

مثال 3: تابع ضرب

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

کد:

 def multiply_by_two(x):
    new_value = x * 2
    new_value را برگردانید
  
# فراخوانی تابع و ذخیره نتیجه
نتیجه = ضرب_در_دو (4)
چاپ ("4 ضرب در 2 است"، نتیجه)
  

توضیح گام به گام:

درک پارامترها و مقادیر بازگشتی

توابع می توانند اطلاعات خارج را از طریق پارامترها بپذیرند. پارامتر متغیری است که هنگام فراخوانی یک تابع، داده ها را نگه می دارد. در مثال های ما، name ، num1 ، num2 و x پارامترهایی هستند.

برخی از توابع مقادیر را برمی گردانند . مقدار برگشتی نتیجه ای است که تابع پس از انجام کارش پس می دهد. در مثال 3، تابع multiply_by_two مقداری را برمی گرداند که سپس در یک متغیر ذخیره می شود.

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

برنامه نویسی مدولار: تقسیم کردن مسائل به قطعات

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

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

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

این رویکرد مانند داشتن یک کمکی است که می داند چگونه بند کفش را ببندد، بنابراین لازم نیست هر بار که یک جفت کفش جدید می گیرید، نحوه انجام این کار را دوباره یاد بگیرید.

مثال های روزمره مرتبط

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

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

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

اطلاعات بیشتر درباره تعریف توابع

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

ساختار کلی:

 def function_name (parameter1, parameter2, ...):
    # بلوک کد
    در صورت نیاز مقداری_مقدار # را برگردانید
  

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

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

ویژگی های ضروری توابع

در اینجا چند ویژگی مهم توابع وجود دارد که باید به خاطر بسپارید:

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

تغییرات و ایده های پیشرفته تر

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

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

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

مثال های اضافی و راه حل های گام به گام

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

مثال 4: تابعی برای بررسی اعداد زوج

 def is_even (تعداد):
    # بررسی کنید که آیا عدد زوج است یا خیر
    اگر عدد % 2 == 0:
        بازگشت درست است
    دیگر:
        بازگشت نادرست

# با استفاده از تابع برای بررسی عدد 6
نتیجه = is_even (6)
چاپ ("آیا 6 زوج است؟"، نتیجه)
  

توضیح گام به گام:

مثال 5: تابعی برای محاسبه مساحت مربع

 Def area_of_square (طول_سمت):
    # مساحت را با استفاده از فرمول محاسبه کنید: area = side_length * side_length
    مساحت = طول_ پهلو * طول_ پهلو
    منطقه بازگشت

# با استفاده از تابع برای محاسبه مساحت مربع با طول ضلع 5
مساحت_مربع = مساحت_مربع (5)
print("مساحت مربع است"، square_area)
  

توضیح گام به گام:

مثال 6: تابعی برای تعیین بزرگتر از دو عدد

 تعریف عدد بزرگتر (a, b):
    # دو عدد را مقایسه کنید و عدد بزرگتر را برگردانید
    اگر a > b:
        برگرداندن الف
    دیگر:
        بازگشت ب

# با استفاده از تابع برای یافتن عدد بزرگتر بین 7 و 10
بزرگترین = عدد_بزرگتر (7، 10)
چاپ ("عدد بزرگتر است"، بزرگترین)
  

توضیح گام به گام:

چرا توابع برای مدولار بودن مهم هستند؟

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

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

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

خلاصه نکات کلیدی

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

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

با برنامه نویسی به یادگیری، کاوش و سرگرمی ادامه دهید. توابع اولین قدم در نوشتن کدهای خلاقانه و مفید هستند!

Download Primer to continue