Python Functions

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

🔹 تعریف تابع

def function_name(): # بدنه تابع # کدهایی که اجرا می‌شوند

مثال:

def greet(): print("سلام! خوش آمدید.")

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

greet()

📌 خروجی:

سلام! خوش آمدید.

🔹 آرگومان‌ها (Parameters)

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

def greet_user(name): print(f"سلام {name}!")

فراخوانی:

greet_user("علی")

📌 خروجی:

سلام علی!

🔹 چند آرگومان

def add(x, y): print(x + y) add(3, 5)

📌 خروجی:

8

🔹 مقدار بازگشتی (Return)

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

def square(n): return n * n result = square(4) print(result) # 16

🔹 آرگومان‌های پیش‌فرض

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

def greet(name="کاربر"): print(f"سلام {name}!") greet() # سلام کاربر! greet("سارا") # سلام سارا!

🔹 آرگومان‌های نام‌گذاری شده (Keyword Arguments)

می‌توان نام پارامترها را مشخص کرد:

def person_info(name, age): print(f"{name} - {age} ساله") person_info(age=30, name="مینا")

🔹 تعداد نامشخص آرگومان‌ها

*args (آرگومان‌های موقعیتی نامحدود)

def total(*numbers): print(sum(numbers)) total(2, 4, 6)

**kwargs (آرگومان‌های کلیدی نامحدود)

def show_info(**data): for key, value in data.items(): print(key, value) show_info(name="Ali", age=25, city="Tehran")

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

  • محلی (Local): فقط درون تابع معتبر است.

  • سراسری (Global): در کل برنامه در دسترس است.

x = 10 # سراسری def test(): y = 5 # محلی print(x, y) test()

🔹 توابع تو در تو (Nested Functions)

def outer(): def inner(): print("تابع داخلی") inner() outer()

🔹 توابع لامبدا (Lambda Functions)

توابع کوتاه و یک‌خطی بدون نام:

square = lambda n: n * n print(square(5)) # 25

🔹 داک‌استرینگ (Docstring)

برای مستندسازی تابع:

def greet(): """این تابع پیام خوشامد چاپ می‌کند.""" print("سلام!")

می‌توان با help(greet) یا greet.__doc__ توضیح را دید.

✅ نکات مهم

  • توابع می‌توانند مقدار بازگشتی نداشته باشند (در این صورت None برمی‌گردد).

  • توابع می‌توانند در ماژول‌های جدا تعریف و در پروژه‌های مختلف استفاده شوند.

  • برای جلوگیری از خطای تعداد آرگومان، از *args و **kwargs در توابع عمومی استفاده کنید.

💡 تمرین‌های پیشنهادی

  1. تابعی بنویس که سه عدد گرفته و بزرگ‌ترین را برگرداند.

  2. تابعی بساز که یک لیست از اعداد را گرفته و فقط اعداد زوج را برگرداند.

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

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