توابع در پایتون

تعریف تابع، فراخوانی، پارامتر، return، مقادیر پیش‌فرض و توابع داخلی

تابع چیست؟

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

تعریف تابع

با کلمه کلیدی def تابع تعریف می‌شود:

def greet():
    print("سلام!")

فراخوانی تابع

# تعریف
def greet():
    print("سلام!")

# فراخوانی
greet()  # سلام!
greet()  # سلام!

پارامتر و آرگومان

پارامتر متغیری در تعریف تابع است. آرگومان مقداری است که هنگام فراخوانی می‌دهید:

# پارامتر name
def greet(name):
    print(f"سلام {name}!")

# آرگومان "علی"
greet("علی")    # سلام علی!
greet("مریم")   # سلام مریم!

چند پارامتر

def add(a, b):
    return a + b

result = add(5, 3)
print(result)  # 8

دستور return

return مقدار را از تابع برمی‌گرداند:

def square(x):
    return x ** 2

result = square(5)
print(result)  # 25
اگر تابع return نداشته باشد، None برمی‌گرداند.

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

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

def greet(name, message="سلام"):
    print(f"{message}، {name}!")

greet("علی")              # سلام، علی!
greet("مریم", "خوش آمدی")  # خوش آمدی، مریم!
پارامترهای دارای مقدار پیش‌فرض باید بعد از پارامترهای بدون پیش‌فرض بیایند!

برگرداندن چند مقدار

پایتون می‌تواند چند مقدار را به‌صورت تاپل برگرداند:

def min_max(numbers):
    return min(numbers), max(numbers)

smallest, largest = min_max([3, 1, 4, 1, 5, 9])
print(f"کوچک‌ترین: {smallest}")  # 1
print(f"بزرگ‌ترین: {largest}")   # 9

Docstring — مستندات تابع

def calculate_bmi(weight, height):
    """محاسبه شاخص توده بدنی.
    
    Args:
        weight: وزن به کیلوگرم
        height: قد به متر
    Returns:
        مقدار BMI
    """
    return weight / (height ** 2)

متغیر محلی و سراسری

# متغیر سراسری
counter = 0

def increment():
    global counter  # برای تغییر متغیر سراسری
    counter += 1

increment()
print(counter)  # 1

توابع داخلی (Built-in)

پایتون ده‌ها تابع آماده دارد:

تابعتوضیح
print()چاپ
len()طول
type()نوع
int(), str(), float()تبدیل نوع
input()دریافت ورودی
range()دنباله اعداد
sum(), max(), min()محاسبات
sorted()مرتب‌سازی
enumerate()ایندکس + مقدار

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

خلاصه

مفهومسینتکس
تعریفdef name(params):
فراخوانیname(args)
برگرداندنreturn value
پیش‌فرضdef f(x=10):
چند مقدارreturn a, b

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

ابزارهای مرتبط