توابع در پایتون چیست؟

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")

در این مثال:

مقدار پیش‌فرض پارامتر

می‌توانیم برای یک پارامتر مقدار پیش‌فرض تعیین کنیم.

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 آشنا شدیم.

← درس قبلی: مجموعه‌ها (Set) بازگشت به آموزش پایتون درس بعدی: رشته‌ها (String) →