تابع با تعداد پارامترهای متغیر (args) 🌟
یه وقتایی نمیدونی چند تا ورودی قراره به تابع بدی. اینجا *args به دادت میرسه! این یه ویژگی خفنه که به تابع اجازه میده تعداد متغیر ورودی بگیره. مثل وقتی یه سبد میوه داری و میتونی هر چند تا میوه که بخوای بندازی توش! 🍎🍊🍇
✨ مثال:
def sum_numbers(*args):
total = 0
for num in args:
total += num
return total # Return the sum of all numbers
print(sum_numbers(1, 2, 3)) # Sum of 3 numbers
print(sum_numbers(1, 2, 3, 4, 5)) # Sum of 5 numbers
🔹 خروجی:
6
15
🔰 این کد چیکار میکنه؟
- این *args به تابع اجازه میده هر تعداد ورودی رو بهصورت یه لیست بگیره.
- تابع sum_numbers همه اعداد ورودی رو جمع میکنه و نتیجه رو برمیگردونه.
- میتونی 3 تا عدد، 5 تا عدد، یا حتی هیچی بهش بدی!
✨ یه مثال باحالتر: فرض کن داری یه برنامه برای محاسبه میانگین نمرات میسازی:
def average_scores(*scores):
if not scores: # Check if no scores provided
return 0
total = sum(scores)
count = len(scores)
return total / count # Return the average
print(average_scores(10, 15, 20)) # Average of 3 scores
print(average_scores(5, 10, 15, 20, 25)) # Average of 5 scores
🔹 خروجی:
15.0
15.0
📌 نکتههای کلیدی:
- در واقع *args یه لیست از ورودیهاست که میتونی باهاش مثل لیست کار کنی (مثل حلقه زدن).
- اگه هیچ ورودی ندی، *args یه لیست خالیه.
- میتونی *args رو با پارامترهای معمولی ترکیب کنی، ولی *args باید آخر تعریف بشه.
✨ مثال ترکیبی:
def print_scores(student, *scores):
print(f"{student}'s scores: {scores}") # Print student and their scores
return average_scores(*scores) # Return average using previous function
print(print_scores("Ali", 10, 15, 20))
🔹
✨ خروجی:
Ali's scores: (10, 15, 20)
15.0
مثال روزمره: فکر کن داری یه اپلیکیشن برای مدیریت خرید میسازی. یه تابع مینویسی که قیمت آیتمهای خرید رو بگیره و جمعشون رو حساب کنه، مهم نیست چند تا آیتم باشه!
❓ تمرین: یه تابع بنویسید که تعداد متغیر عدد بگیره و بزرگترین عدد رو برگردونه. تابع رو با چند مجموعه ورودی مختلف تست کنید (مثلاً 3 عدد، 5 عدد).
💯 @PythonForYou 🧑💻👩💻