توابع و پارامترها در پایتون – مبانی پایتون
در برنامهنویسی، توابع بلوکهای کد سازمانیافته و قابل استفاده مجدد هستند که برای انجام یک وظیفه خاص طراحی شدهاند. استفاده از توابع، کد را خواناتر، قابل نگهداریتر و کارآمدتر میکند. در این مقاله، به بررسی عمیق توابع و پارامترها در زبان برنامهنویسی پایتون میپردازیم.
چرا از توابع استفاده کنیم؟
توابع مزایای متعددی دارند که عبارتند از:
- قابلیت استفاده مجدد: یک تابع را میتوان چندین بار در یک برنامه فراخوانی کرد، بدون اینکه نیاز به نوشتن مجدد کد باشد.
- سازماندهی کد: توابع به شکستن یک برنامه بزرگ به بخشهای کوچکتر و قابل مدیریت کمک میکنند.
- خوانایی کد: توابع با نامهای معنادار، هدف کد را روشنتر میکنند.
- کاهش تکرار: با استفاده از توابع، از تکرار کد جلوگیری میشود.
- تستپذیری: توابع را میتوان به طور مستقل تست کرد.
تعریف یک تابع در پایتون
برای تعریف یک تابع در پایتون، از کلمه کلیدی def استفاده میکنیم. ساختار کلی تعریف یک تابع به صورت زیر است:
def نام_تابع(پارامترها):
"""
توضیحات تابع (اختیاری)
"""
# بدنه تابع
# دستورات
return مقدار_بازگشتی (اختیاری)
* def: کلمه کلیدی برای تعریف تابع.
* نام_تابع: نامی که برای تابع انتخاب میکنید. نام تابع باید توصیفی و مرتبط با وظیفه آن باشد.
* پارامترها: مقادیری که به تابع ارسال میشوند (اختیاری).
* """توضیحات تابع""": یک رشته مستند (docstring) که توضیح میدهد تابع چه کاری انجام میدهد (اختیاری، اما توصیه میشود).
* بدنه تابع: بلوک کدی که وظیفه تابع را انجام میدهد.
* return: کلمه کلیدی برای بازگرداندن یک مقدار از تابع (اختیاری). اگر هیچ مقداری بازگردانده نشود، تابع به طور پیشفرض مقدار None را برمیگرداند.
مثال ساده از تعریف و فراخوانی یک تابع
def سلام_کردن():
"""
این تابع یک پیام سلام ساده چاپ میکند.
"""
print("سلام، دنیا!")
# فراخوانی تابع
سلام_کردن()
در این مثال، تابع سلام_کردن بدون هیچ پارامتری تعریف شده است و یک پیام سلام را چاپ میکند. برای فراخوانی تابع، نام آن را به همراه پرانتزها مینویسیم.
پارامترها و آرگومانها
پارامترها متغیرهایی هستند که در تعریف تابع مشخص میشوند و مقادیری را دریافت میکنند.
آرگومانها مقادیری هستند که هنگام فراخوانی تابع به آن ارسال میشوند.
انواع پارامترها
پایتون از انواع مختلفی از پارامترها پشتیبانی میکند:
- پارامترهای موقعیتی (Positional Parameters): این پارامترها بر اساس موقعیتشان در تعریف تابع، مقادیر را دریافت میکنند.
- پارامترهای کلیدواژهای (Keyword Parameters): این پارامترها بر اساس نامشان در تعریف تابع، مقادیر را دریافت میکنند.
- پارامترهای پیشفرض (Default Parameters): این پارامترها مقادیر پیشفرضی دارند که در صورت عدم ارسال آرگومان برای آنها، استفاده میشوند.
- پارامترهای متغیر (Variable-Length Parameters): این پارامترها به تابع اجازه میدهند تا تعداد متغیری از آرگومانها را دریافت کند.
مثالهایی از انواع پارامترها
پارامترهای موقعیتی
def جمع(الف, ب):
"""
این تابع دو عدد را جمع میکند.
"""
return الف + ب
# فراخوانی تابع با پارامترهای موقعیتی
نتیجه = جمع(5, 3)
print(نتیجه) # خروجی: 8
پارامترهای کلیدواژهای
def معرفی(نام, سن):
"""
این تابع نام و سن یک شخص را معرفی میکند.
"""
print("نام:", نام)
print("سن:", سن)
# فراخوانی تابع با پارامترهای کلیدواژهای
معرفی(سن=30, نام="علی")
پارامترهای پیشفرض
def سلام_کردن(نام="مهمان"):
"""
این تابع یک پیام سلام با نام مشخص شده چاپ میکند.
اگر نامی مشخص نشود، از "مهمان" استفاده میشود.
"""
print("سلام، " + نام + "!")
# فراخوانی تابع با پارامتر پیشفرض
سلام_کردن() # خروجی: سلام، مهمان!
# فراخوانی تابع با پارامتر مشخص
سلام_کردن("رضا") # خروجی: سلام، رضا!
پارامترهای متغیر
پایتون دو نوع پارامتر متغیر دارد:
*args: برای دریافت تعداد متغیری از آرگومانهای موقعیتی.**kwargs: برای دریافت تعداد متغیری از آرگومانهای کلیدواژهای.
def جمع_همه(*args):
"""
این تابع مجموعهای از اعداد را جمع میکند.
"""
مجموع = 0
for عدد in args:
مجموع += عدد
return مجموع
# فراخوانی تابع با تعداد متغیری از آرگومانها
نتیجه = جمع_همه(1, 2, 3, 4, 5)
print(نتیجه) # خروجی: 15
def اطلاعات_شخص(**kwargs):
"""
این تابع اطلاعات یک شخص را چاپ میکند.
"""
for کلید, مقدار in kwargs.items():
print(کلید + ":", مقدار)
# فراخوانی تابع با تعداد متغیری از آرگومانهای کلیدواژهای
اطلاعات_شخص(نام="مریم", سن=25, شهر="تهران")
مقدار بازگشتی از تابع
تابع میتواند با استفاده از کلمه کلیدی return یک مقدار را برگرداند. اگر تابع هیچ مقداری را برنگرداند، به طور پیشفرض مقدار None را برمیگرداند.
def مربع(عدد):
"""
این تابع مربع یک عدد را محاسبه میکند.
"""
return عدد * عدد
# فراخوانی تابع و دریافت مقدار بازگشتی
نتیجه = مربع(4)
print(نتیجه) # خروجی: 16
دامنه متغیرها (Scope)
دامنه یک متغیر، ناحیهای از کد است که متغیر در آن قابل دسترسی است. در پایتون، دو نوع دامنه وجود دارد:
- دامنه محلی (Local Scope): متغیرهایی که در داخل یک تابع تعریف میشوند، دامنه محلی دارند و فقط در داخل آن تابع قابل دسترسی هستند.
- دامنه سراسری (Global Scope): متغیرهایی که در خارج از هر تابع تعریف میشوند، دامنه سراسری دارند و در کل برنامه قابل دسترسی هستند.
متغیر_سراسری = 10
def تابع_مثال():
متغیر_محلی = 5
print("متغیر سراسری:", متغیر_سراسری)
print("متغیر محلی:", متغیر_محلی)
تابع_مثال()
# print(متغیر_محلی) # این خط باعث ایجاد خطا میشود، زیرا متغیر_محلی در دامنه محلی تابع تعریف شده است.
نتیجهگیری
توابع یکی از مفاهیم اساسی در برنامهنویسی هستند. با استفاده از توابع، میتوانید کد خود را سازماندهی کنید، قابلیت استفاده مجدد را افزایش دهید و خوانایی کد را بهبود بخشید. درک انواع پارامترها و نحوه بازگرداندن مقادیر از توابع، برای نوشتن برنامههای پایتون کارآمد و قابل نگهداری ضروری است.

بدون دیدگاه