📚 آموزش پارامتر تاپل (*args) در پایتون
درک کامل مفهوم args و کاربرد آن در توابع
❓ `*args` چیست؟
📖 تعریف فنی
*args یک پارامتر ویژه در پایتون است که اجازه میدهد:
- تعداد نامشخصی آرگومان به تابع ارسال شود
- آرگومانها به صورت تاپل (Tuple) ذخیره شوند
- نام
argsیک قرارداد است (میتوان هر نام دیگری استفاده کرد) - ستاره (
*) قبل از نام مهم است
✨ نکته کلیدی
کلمه args مخفف “arguments” (آرگومانها) است اما میتوانید از هر نام دیگری استفاده کنید:
def func(*numbers):def func(*values):def func(*items):
🧩 مثال ساده برای درک بهتر
📥 ورودی به تابع
func(1, 2, 3, 4, 5)
↓
*args = (1, 2, 3, 4, 5)
📤 خروجی از تابع
یک تاپل ۵ عضوی
↓
type(args) = <class 'tuple'>
🧮 پروژه: جمع اعداد با پارامتر تاپل (*args)
📝 صورت مسئله:
تابعی بنویسید که با استفاده از *args بتواند هر تعداد عدد را دریافت کرده و مجموع آنها را محاسبه کند.
💻 کد کامل پروژه:
def sum_numbers(*args):
"""
این تابع هر تعداد عدد را دریافت کرده و مجموع آنها را برمیگرداند
پارامتر: *args - تاپل حاوی اعداد ورودی
بازگشت: مجموع اعداد
"""
total = 0
for number in args:
total += number
return total
# 🔴 تست ۱: سه عدد
result1 = sum_numbers(1, 2, 3)
print("مجموع ۱، ۲، ۳ =", result1)
# 🟡 تست ۲: پنج عدد
result2 = sum_numbers(10, 20, 30, 40, 50)
print("مجموع ۱۰، ۲۰، ۳۰، ۴۰، ۵۰ =", result2)
# 🟢 تست ۳: یک عدد
result3 = sum_numbers(7)
print("مجموع ۷ =", result3)
# 🔵 تست ۴: بدون آرگومان
result4 = sum_numbers()
print("مجموع بدون آرگومان =", result4)
🎯 خروجی برنامه:
مجموع ۱، ۲، ۳ = ۶
مجموع ۱۰، ۲۰، ۳۰، ۴۰، ۵۰ = ۱۵۰
مجموع ۷ = ۷
مجموع بدون آرگومان = ۰
مجموع ۱۰، ۲۰، ۳۰، ۴۰، ۵۰ = ۱۵۰
مجموع ۷ = ۷
مجموع بدون آرگومان = ۰
🔍 تجسم عملکرد `*args`
فراخوانی تابع
sum_numbers(5, 10, 15, 20)
↓
در داخل تابع
args = (5, 10, 15, 20)
↓
نتیجه حلقه for
| مرحله | number | total |
|---|---|---|
| شروع | – | ۰ |
| ۱ | ۵ | ۵ |
| ۲ | ۱۰ | ۱۵ |
| ۳ | ۱۵ | ۳۰ |
| ۴ | ۲۰ | ۵۰ |
✅ مزایای استفاده از `*args`
✨
انعطافپذیری
میتوانید هر تعداد آرگومان ارسال کنید – از صفر تا بینهایت!
🔄
قابلیت استفاده مجدد
یک تابع برای حالات مختلف کافیست
🧩
سادگی کد
نیاز به تعریف چندین تابع مشابه را حذف میکند
⚡
کارایی
برای توابع ریاضی و آماری ایدهآل است
📝 مثالهای بیشتر با `*args`
مثال ۱: پیدا کردن بزرگترین عدد
def find_max(*numbers):
return max(numbers) if numbers else None
مثال ۲: الحاق رشتهها
def concatenate(*strings):
return ' '.join(strings)
مثال ۳: میانگین اعداد
def average(*numbers):
return sum(numbers)/len(numbers) if numbers else 0
🎯 نکته نهایی
*args ابزاری قدرتمند در پایتون است که به شما امکان میدهد توابعی بنویسید که با تعداد متغیر آرگومان کار کنند. کلمه args یک قرارداد رایج است، اما مهمترین بخش ستاره (*) قبل از نام پارامتر است!
*هر_نامی = تاپل آرگومانها
