আগের সেশনে আমরা ভ্যারিয়েবলে তথ্য এসাইন করা শুরু করেছি। আমরা যদি প্রোগ্রামের ব্যবহারকারীর থেকে একটি তথ্য ইনপুট নিতে চাই তাহলে কি করব? কাজটি করা খুবই সহজ input () ব্যবহার করে।
আমরা যদি নিচের মতো লেখি-
my_input input ()
তাহলে my_input ভ্যারিয়েবলটি আমাদের থেকে একটি ইনপুট গ্রহণ করবে। তবে, input () প্রোগ্রামের ভিতরে ইনপুট হিসেবে কোনো সংখ্যা, অক্ষর ইত্যাদি যেটাই গ্রহণ করুক না কেন, সেটিকে str ডেটাটাইপে গ্রহণ করবে।
চল একটি কাজ করি, একটি ভ্যারিয়েবল ইনপুট নিয়ে সেটি প্রিন্ট করি। এমন একটি প্রোগ্রাম লেখা খুব সহজ। নিচের মতো করে একটি প্রোগ্রাম লিখে রান করি-
my_input = input() print(my_input) print(type(my_input)) |
এই প্রোগ্রামের আউটপুট তাহলে কি হবে? তুমি যা ইনপুট দিবে সেটিই কিন্তু আউটপুট হিসেবে প্রিন্ট হবে। কিন্তু খেয়াল করে দেখ, তুমি কোনো পূর্ণসংখ্যা বা ভগ্নাংশ ইনপুট দিলেও সেটির ডেটাটাইপ হিসেবে str প্রিন্ট হচ্ছে। তার মানে, তুমি যে তথ্যই জমা দাও, input() তথ্যটিকে একটি স্ট্রিং হিসাবে গ্রহণ করবে। কিন্তু তুমি যদি চাও ইনপুটটি যেন স্ট্রিং হিসেবে জমা না হয়ে ইন্টিজার বা ফ্লোট ডেটা হিসেবে জমা হয় তাহলে তোমাকে তথ্যটি ওই নির্দিষ্ট ডেটাটাইপে রূপান্তর করে নিতে হবে। একে বলা হয় টাইপ কাস্টিং (Type Casting) করা। আমাদের চারটি প্রধান ডেটাটাইপের মধ্যে int, float, str ও bool এ রূপান্তর করা সহজ।
ডেটাটাইপ | ওই ডেটাটাইপে রূপান্তর করতে লিখব |
int | int() |
float | float() |
str | str() |
bool | bool() |
আমরা যখন কোনো তথ্য ইনপুট নিচ্ছি, input() ফাংশনকে সরাসরি int ডেটাটাইপে রূপান্তর করা যাবে নিচের মতো প্রোগ্রাম করে-
my_input=int(input()) print(my_input) print(type(my_input)) |
প্রোগ্রামটি রান করার পর খেয়াল করে দেখো int(input()) লেখার কারণে my_input ভ্যারিয়েবলটি int ডেটা টাইপে রূপান্তরিত হচ্ছে।
তুমি কি একইভাবে my_input ভ্যারিয়েবলকে float ডেটা টাইপে রূপান্তর করার একটি প্রোগ্রাম লিখতে পারবে? নিচের ঘরে এমন একটি প্রোগ্রাম লিখে ফেল-
|
আবার, আমরা চাইলে একটি তথ্য ইনপুট নেবার সময় নির্দিষ্ট কমান্ড বা নির্দেশনা দিয়ে দিতে পারব। সেজন্য input() এর ভিতরে " দিয়ে সেই কমান্ড লিখে দিতে পারি। যেমন, আমরা যদি লেখি-
my_input input('Provide a Sentence as an input:') print(my_input) print(type(my_input)) |
তাহলে প্রোগ্রামটি রান করার পর প্রথমে আমাদের কাছে একটি ইনপুট কমান্ড প্রদর্শন করবে-
Provide a Sentence as an input:
তারপর আমরা আমাদের ইনপুট দিলে সেই ইনপুট প্রিন্ট করবে এবং ডেটা টাইপ হিসেবে str দেখাবে।
আবার আমরা যদি চাই, আমাদের ইনপুট নেওয়া তথ্য প্রিন্ট করার আগে ও পরে আরও শব্দ বা বাক্য প্রিন্ট করতে পারি। এজন্য যে শব্দ বা বাক্য প্রিন্ট করতে চাই, সেটি print() এর মধ্যে" এর ভিতরে লিখব ও তারপর , (কমা) চিহ্ন দিয়ে আমাদের ভ্যারিয়েবল লিখে দিব।
যেমন, আমরা যদি নিচের প্রোগ্রামটি লেখি,
my_input = int(input('Write down an integer number:')) print('This is your integer number: ', my_input) |
তাহলে নিচের মতো আউটপুট দেখতে পাব-
এখানে খেয়াল করে দেখো, print() এর মধ্যে যখন আমরা টেক্সট প্রিন্ট করছি, তখন সেটি'' বা একক উদ্ধৃতির ভিতরে লিখেছি। আর যখন আমরা একটি ভ্যারিয়েবল প্রিন্ট করেছি, সেটিকে কোন'' বা একক উদ্ধৃতির মধ্যে না রেখে সরাসরি ভ্যারিয়েবলটির নাম লিখেছি।
এবারে, নিচের প্রোগ্রামটি লেখার চেষ্টা করি-
সমস্যা - এমন একটি প্রোগ্রাম ডিজাইন কর, যা প্রথমে একটি ভ্যারিয়েবলকে পূর্ণসংখ্যা হিসেবে ইনপুট গ্রহণ করবে। এরপর আরেকটি ভ্যারিয়েবলকে দশমিক যুক্ত সংখ্যা ইনপুট হিসেবে গ্রহণ করবে। এরপর সংখ্যা দুটি প্রিন্ট করবে এবং তাদের ডাটাটাইপ প্রিন্ট করবে। হিন্ট- ইনপুট দুটিকে অবশ্যই যথাক্রমে int ও float হিসেবে টাইপ কাস্টিং করে নিতে হবে।
|
সমাধান-
|
আরও দেখুন...