> 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/control-structures/undefined-1/range.md).

# রেঞ্জ range()

range() ফাংশন হচ্ছে জেনারেটর। যা একটি জেনারেটর অবজেক্ট রিটার্ন করে। সিনট্যাক্স:

```
range( start_value, end_value, increament_value)
```

ফাংশন তিনটি প্যারামিটার নিতে পারে। start\_value ফাংশন কত থেকে কাউন্টিং শুরু করবে তা ডিফাইন করে, end\_value ডিফাইন করে ফাংশনের শেষ সীমা এবং increment\_value ডিফাইন করে প্রতি ধাপে কত করে মান বৃদ্ধি হবে। start\_value এবং end\_value হচ্ছে অপশনাল। মানে ফাংশনে এই দুটি প্যারামিটার পাস না করলে ও ফাংশন এক্সিকিউট হবে। সেক্ষেত্রে বাই-ডিফল্ট start\_value এর মান হবে 0 এবং incremental\_value এর মান হবে 1।

```python
>>>range(5)
range(0, 5)
>>> a = range(5)
>>>print(type(a))
< class 'range'>
```

for লুপের সাথে ব্যবহারের ক্ষেত্রে আমরা range() ফাংশনের অবজেক্ট গুলো কে ট্রাভার্স করার জন্য একটি ভ্যারিয়েবল ব্যবহার করতে হয়।

```python
>>> for i in range(5):
print(i)
0
1
2
3
4
```

যেহেতু আমরা কোন start\_value এবং incremental\_value দেই নি তাই বাই-ডিফল্ট range() ফাংশন এদের মান যথাক্রমে 0 এবং 1 ধরে নিয়েছে। যদিও end\_value এর মান 5 দেয়া হয়েছে কিন্তু range() এখানে 4 পর্যন্ত আউটপুট দিয়েছে কারণ end\_value এর মানের চেয়ে ছোট প্রিন্ট করতে পারবে, সমান নয়।

```python
for i in range(1,10,2)
print(i)
1
3
5
7
9
```

range. ফাংশন এর মাধ্যমে স্বয়ংক্রিয় ভাবে একটি লিস্ট তৈরি করা যায়, যার এলিমেন্ট গুলো হয় একটি নির্দিষ্ট ক্রম অনুযায়ী।

```
my_numbers = list(range(10)) print(my_numbers)
```

আউটপুট:

```
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
```

উপরের উদাহরণে, ০ থেকে ৯ পর্যন্ত ১০টি ক্রমিক সংখ্যা সম্বলিত একটি লিস্ট তৈরি করা হয়েছে। range এর সাথে list ফাংশনের ব্যবহার করা হয়েছে কারন, range বস্তুত একটি অবজেক্ট রিটার্ন করে আর তাই একে list ফাংশনের আর্গুমেন্ট হিসেবে পাঠিয়ে একটি ব্যবহার উপযোগী লিস্ট হিসেবে রূপান্তর করা হয়েছে।
