> 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/python-basics/input-output.md).

# ইনপুট-আউটপুট

**ইনপুট input()**

ইউজার থেকে কোন ডেটা ইনপুট নিতে পাইথনে input() ফাংশন ব্যবহার করা হয়। a = input() b = input("Enter a number: ") উপরের স্টেট্মেন্টের ক্ষেত্রে আমরা যদি নাম্বার ও ইনপুট দেই পাইথন সেটা স্ট্রিং হিসেবেই নিবে।

```python
>>> a = input()
4
>>> a
'4'
>>> type(a)
<class 'str'>
```

তাই ইনপুট নেয়ার ক্ষেত্রে বলে দিতে হয় আমরা কোন টাইপের ডেটা ইনপুট হিসেবে চাই। প্রকৃত পক্ষে আমরা স্ট্রিং ই ইনপুট নেই এবং তাকে int(),str(),float() ফাংশনের মধ্যে পাঠিয়ে এর টাইপ পরিবর্তন করে নেই।

```python
>>> a = int(input())
6
>>> a
6
>>> type(a)
<class 'int'>
>>> a = float(input())
2
>>> a
2.0
```

**আউটপুট print()**

পাইথনে কোন আউটপুট দেখানোর জন্য print() ফাংশন ব্যবহার করা হয়। প্রিন্ট ফাংশনের ফুল সিন্ট্যাক্স হচ্ছেঃ

```python
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
```

প্যরামিটারসঃ • objects – যে কোন অবজেক্ট (\*) এর দেয়ার মানে হচ্ছে একাধিক অবজেক্ট। • sep – একটি আউট পুট অপরটির মাঝখানে কি চিহ্ন দিয়ে আলাদা করা হবে। ডিফল্ট ভ্যালূঃ ' ' (সিঙ্গেল স্পেস) • end - end এর ভেতর আমরা যা পাস করব সেটা একদম সবার শেষে প্রিন্ট হবে। • file – ফাইল অবজেক্ট নেয়। • flush - False/True নোট: sep, end, file এবং flush হল কি-ওয়ার্ড আর্গুমেন্টস। অর্থ্যাৎ, এই আর্গুমেন্টস গুলো ব্যবহার করার সময় এদের নাম বলে দিতে হবে।

```python
print(*objects, sep = 'separator')
```

এভাবে দিলে ভূল হবেঃ

```python
print(*objects, 'separator')
```

বিভিন্ন ধরনের আর্গুমেন্টস নিয়ে আমরা এই বইয়ে পরে আলোচনা করব।

উদাহরণঃ

```python
a = 3
print("a =", a, sep=’ *****’, end='\n\n\n')
print("a =", a, sep='---', end='end')
```

আউটপুটঃ

```python
a = *****3

a =---3end
```

flush কি-ওয়ার্ড আর্গুমেন্ট কিভাবে কাজ করে তা নিয়ে এখানে আমরা বিশদ আলোচনা করব না। তবে এটির কাজটা একটু দেখা যাক...

```python
txtfile = open("myfile.txt",'w')
for i in range(100):
    print("I love Python",sep=' ',end = ' ',file = txtfile, flush = True)
```

প্রথমে যে ডিরেক্টরি / ফোল্ডারে আছো সেখানে myfile.txt নামে একটি ফাইল তৈরি কর। open() ফাংশনে ফাইলে নাম দিয়েছি এবং বলেছি একে ‘w’ write মুডে ওপেন করতে। এসব আমরা “পাইথন ফাইলস” অধায়ে দেখব। এবার এই একই প্রোগ্রাম একবার flush = False দিয়ে রান কর এবং myfile.txt ফাইল টি ওপেন করে দেখ। এবার flush = True দিয়ে রান কর তারপর ফাইল টি ওপেন কর। কিছু পরিবর্তন আছে? এ পরিবর্তনের পেছনে কি কারণ তা খোঁজার চেষ্টা কর। আমি একটু হিন্টস দিয়ে দেইঃ এর সাথে বাফারের একটা সম্পর্ক আছে।
