توابع در پایتون چیست؟
Function یا تابع یکی از مهمترین بخشهای برنامهنویسی در پایتون است. تابع مجموعهای از دستورات است که برای انجام یک کار مشخص نوشته میشود.
استفاده از تابع باعث میشود بتوانیم یک بخش از کد را یک بار بنویسیم و در قسمتهای مختلف برنامه دوباره از آن استفاده کنیم.
چرا از تابع استفاده میکنیم؟
فرض کنید یک کار را چندین بار در برنامه انجام میدهیم. اگر تمام دستورات را هر بار دوباره بنویسیم، کد طولانی و تکراری میشود.
با استفاده از تابع، کد مربوط به آن کار را یک بار مینویسیم و هر زمان که لازم باشد تابع را فراخوانی میکنیم.
ساخت تابع در پایتون
برای تعریف تابع از کلمه کلیدی
def
استفاده میکنیم.
def say_hello():
print("Hello")
در این مثال تابعی با نام
say_hello
ساختهایم.
فراخوانی تابع
بعد از ساخت تابع، برای اجرای آن باید نام تابع را همراه با پرانتز بنویسیم.
def say_hello():
print("Hello")
say_hello()
خروجی:
Hello
تابع با پارامتر
گاهی لازم است اطلاعاتی را هنگام اجرای تابع به آن ارسال کنیم. برای این کار از Parameter استفاده میکنیم.
def greet(name):
print("Hello", name)
greet("Ali")
خروجی:
Hello Ali
در این مثال، name یک پارامتر تابع است و مقدار
"Ali" هنگام فراخوانی تابع به آن ارسال شده است.
چند پارامتر در تابع
یک تابع میتواند چند پارامتر داشته باشد.
def add(a, b):
print(a + b)
add(10, 20)
خروجی:
30
پارامتر و آرگومان چه تفاوتی دارند؟
پارامتری که در زمان تعریف تابع داخل پرانتز قرار میدهیم، Parameter نام دارد.
مقداری که هنگام فراخوانی تابع به آن ارسال میکنیم، Argument نام دارد.
def greet(name):
print("Hello", name)
greet("Sara")
در این مثال:
nameپارامتر است."Sara"آرگومان است.
مقدار پیشفرض پارامتر
میتوانیم برای یک پارامتر مقدار پیشفرض تعیین کنیم.
def greet(name="دوست"):
print("سلام", name)
greet()
greet("علی")
خروجی:
سلام دوست
سلام علی
دستور return
گاهی میخواهیم تابع یک نتیجه را به ما برگرداند.
برای این کار از
return
استفاده میکنیم.
def add(a, b):
return a + b
result = add(10, 20)
print(result)
خروجی:
30
تفاوت print و return
این دو دستور کاربرد یکسانی ندارند.
print()
نتیجه را روی صفحه نمایش میدهد، اما
return
نتیجه را از تابع برمیگرداند تا بتوانیم در بخش دیگری از برنامه از آن
استفاده کنیم.
def add(a, b):
return a + b
result = add(5, 3)
print(result * 2)
خروجی:
16
برگرداندن چند مقدار از تابع
یک تابع میتواند چند مقدار را با استفاده از
return
برگرداند.
def calculate(a, b):
return a + b, a - b
result = calculate(10, 3)
print(result)
خروجی به صورت یک Tuple خواهد بود:
(13, 7)
استفاده از نتیجه تابع در یک متغیر
def square(number):
return number * number
result = square(5)
print(result)
خروجی:
25
محدوده متغیرها یا Scope
متغیری که داخل یک تابع ساخته میشود معمولاً یک متغیر محلی یا Local Variable است و در خارج از تابع قابل استفاده مستقیم نیست.
def test():
message = "Hello"
print(message)
test()
در این مثال متغیر
message
داخل تابع ساخته شده است.
یک مثال کاربردی
فرض کنید میخواهیم قیمت نهایی یک محصول را با در نظر گرفتن تخفیف محاسبه کنیم.
def final_price(price, discount):
result = price - (price * discount / 100)
return result
price = final_price(100000, 20)
print(price)
خروجی:
80000.0
با استفاده از تابع میتوانیم همین محاسبه را برای محصولات مختلف دوباره استفاده کنیم.
یک مثال دیگر: بررسی زوج یا فرد بودن عدد
def check_number(number):
if number % 2 == 0:
return "زوج"
else:
return "فرد"
print(check_number(10))
print(check_number(7))
خروجی:
زوج
فرد
تابع بدون پارامتر و تابع دارای پارامتر
| نوع تابع | مثال |
|---|---|
| بدون پارامتر | def hello(): |
| یک پارامتر | def hello(name): |
| چند پارامتر | def add(a, b): |
| دارای مقدار بازگشتی | def add(a, b): return a + b |
خلاصه دستورات مهم Function
| دستور | کاربرد |
|---|---|
def |
تعریف تابع |
function() |
فراخوانی تابع |
| Parameter | ورودی تعریفشده برای تابع |
| Argument | مقداری که هنگام فراخوانی ارسال میشود |
return |
برگرداندن نتیجه از تابع |
سوالات متداول
Function در پایتون چیست؟
تابع مجموعهای از دستورات است که برای انجام یک کار مشخص نوشته میشود و میتوان آن را چندین بار اجرا کرد.
برای ساخت تابع از چه کلمهای استفاده میکنیم؟
برای تعریف تابع از کلمه کلیدی
def
استفاده میکنیم.
تفاوت Parameter و Argument چیست؟
Parameter در زمان تعریف تابع مشخص میشود، اما Argument مقداری است که هنگام فراخوانی تابع به آن ارسال میکنیم.
return چه کاری انجام میدهد؟
return
نتیجه را از تابع خارج میکند و به بخش فراخوانیکننده برمیگرداند.
تفاوت print و return چیست؟
print()
برای نمایش اطلاعات استفاده میشود، در حالی که
return
نتیجه را از تابع برمیگرداند تا بتوانیم از آن در ادامه برنامه استفاده کنیم.
جمعبندی
توابع یکی از پایههای مهم برنامهنویسی پایتون هستند. با استفاده از Function میتوانیم کدهای خود را مرتبتر، قابل استفاده مجدد و سادهتر کنیم.
در این درس با تعریف تابع با
def،
پارامتر و آرگومان، مقدار پیشفرض،
return
و مفهوم Scope آشنا شدیم.