دوره‌ها / آموزش پایتون (Python) / توابع (Python Functions)

توابع (Python Functions)

15 دقیقه Article

توابع در پایتون: جادوی کدنویسی ماژولار (Functions) 🛠️🧱

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

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

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

def my_function():
    print("Hello from a function")

my_function()

برای اجرای یک تابع، کافیست نام آن را به همراه پرانتز بنویسید (فراخوانی یا Call کردن).

۲. آرگومان‌ها (Arguments) 📩

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

def my_function(fname, lname):
    print(fname + " " + lname)

my_function("Emil", "Refsnes")
تفاوت پارامتر و آرگومان: پارامتر (Parameter) متغیری است که در زمان تعریف تابع در پرانتز لیست می‌شود. آرگومان (Argument) مقداری است که در هنگام فراخوانی به تابع فرستاده می‌شود.

۳. آرگومان‌های دلخواه (*args و **kwargs) 🪄

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

  • *args (آرگومان‌های نامشخص): اگر قبل از نام پارامتر یک ستاره بگذارید، تابع آرگومان‌ها را به صورت یک تاپل دریافت می‌کند.
  • def my_function(*kids):
        print("The youngest child is " + kids[2])
    
    my_function("Emil", "Tobias", "Linus")
  • **kwargs (آرگومان‌های کلمه‌کلیدی دلخواه): اگر دو ستاره بگذارید، تابع آرگومان‌ها را به صورت یک دیکشنری دریافت می‌کند.
  • def my_function(**kid):
        print("His last name is " + kid["lname"])
    
    my_function(fname = "Tobias", lname = "Refsnes")

۴. مقادیر پیش‌فرض (Default Parameters)

اگر تابعی را بدون آرگومان فراخوانی کنید، پایتون از مقدار پیش‌فرض استفاده می‌کند:

def my_function(country = "Norway"):
    print("I am from " + country)

my_function("Sweden")
my_function()

۵. مقدار بازگشتی (Return Value) 🎁

برای اینکه یک تابع نتیجه‌ای را به برنامه اصلی برگرداند، از کلمه کلیدی return استفاده می‌کنیم:

def my_function(x):
    return 5 * x

print(my_function(3))
توابع بازگشتی (Recursion): پایتون از بازگشت هم پشتیبانی می‌کند، یعنی یک تابع می‌تواند خودش را فراخوانی کند. این یک مفهوم قدرتمند در ریاضیات و برنامه‌نویسی است (مثل محاسبه فاکتوریل).
خطای تعداد آرگومان: اگر تابع شما 2 پارامتر دارد، حتماً باید با 2 آرگومان فراخوانی شود. نه کمتر و نه بیشتر (مگر اینکه مقادیر پیش‌فرض یا *args داده باشید).

تمرین‌های عملی

برای تثبیت یادگیری این درس تمرین‌های زیر را حل کنید

یک تابع خوش‌آمدگویی Easy
سوال تمرین

تابعی به نام say_hello بسازید که یک پارامتر به نام name دریافت کند و عبارت 'Hello [name]' را چاپ کند. سپس تابع را با نام 'Alice' فراخوانی کنید.

پاسخ تمرین
PYTHON
def say_hello(name):
    print('Hello ' + name)

say_hello('Alice')

آماده رفتن به درس بعدی هستید؟

این درس را به پایان رساندید و می‌توانید به درس بعدی بروید.