> For the complete documentation index, see [llms.txt](https://bangla-python-book.gitbook.io/python-programming-language/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://bangla-python-book.gitbook.io/python-programming-language/functional-programming-python/arguments-of-functions-in-python/variable-length-arguments.md).

# ভ্যারিবেল লেনথ আর্গুমেন্টস

অনেক প্রোগ্রাম লিখার সময় আমাদের জানা থাকে না যে ঠিক কতটা আর্গুমেন্টস পাঠানো হবে। আমরা যে সাধারন ক্যাল্কুলেটর ব্যবহার করি সেখানেও আমরা আগে থেকে বলে দেই না যে আমরা ঠিক কতটা সংখ্যার ক্যালকুলেশন করব। আমরা একের পর এক ইনপুট দিতে থাকি এবং ক্যাল্কুলেটরের ফাংশন ফলাফল রিটার্ণ করতে থাকে। এরকম অনেক ক্ষেত্রেই অজানা সংখ্যক আর্গুমেন্টসের প্রয়োজন পড়তে পারে। তখনই আমরা পাইথনের ভ্যারিয়েবল-লেন্থ আর্গুমেন্ট ব্যবহার করি।

```python
def greet(*names): 
   """This ‘ * ’ converts the argument 
               into variable length argument """
   # names is a tuple with arguments
   for name in names:
       print("Hello",name)

greet("Ayub","Meraj","Rashed","Tonmoy","Younus","Imran",)
```

আউটপুট

```
Hello Ayub
Hello Meraj
Hello Rashed
Hello Tonmoy
Hello Younus
Hello Imran
```

এবার সেই ছোট্ট প্রোগ্রাম টা লিখি যা অজানা সংখ্যক সংখ্যার যোগফল রিটার্ন করবে।

```python
>>> def add(*nums):
    total = 0
    for num in nums:
        total += num
    return total

>>> add(3,4,4)
11
```

একইভাবে কি-ওয়ার্ড আর্গুমেন্ট ও ভ্যারিয়েবল লেন্থ হিসেবে ডিফাইন করা যায়। তখন একটি স্টারের

```python
*args
```

জায়গায় দুটি স্টার দিতে হয়

```python
**kwargs
```

দিতে হয়। এটি একটি ডিকশনারি।
