perm_phone_msgUNDER ATTACK? S.O.S. LINE 01781669080

টাইপ কনভার্সন বা টাইপ কাষ্টিং | পাইথন

Python Aditta today12 February, 2021 311 1 5

Background
share close

পূর্বের আর্টিকেলে আমরা ডেটার টাইপ নিয়ে বিস্তারিত আলোচনা করেছিলাম। এ পর্বে আমরা জানবো কিভাবে ডেটার টাইপ পরিবর্তন বা ডেটার টাইপ কাষ্টিং করা যায়।


টাইপ কনভার্সন

ভ্যালু অনুযায়ী ডেটার একটি টাইপ রয়েছে। সেটি হতে পারে ইন্টিজার, ফ্লোট, স্ট্রিং, বুলিয়ান কিংবা যেকোনো কিছু। ভ্যালু অনুযায়ী ডেটার ডিফল্ট টাইপকে পরিবর্তন করে অন্য একটি টাইপে পরিবর্তন করাকে টাইপ কনভার্সন বলে। পাইথনে দুই ধরণের টাইপ কনভার্সন রয়েছে।

১। ইমপ্লিসিট টাইপ কনভার্সন (Implicit Type Conversion)

২। এক্সপ্লিসিট টাইপ কনভার্সন (Explicit Type Conversion)


ইমপ্লিসিট টাইপ কনভার্সন

ইমপ্লিসিট টাইপ কনভার্সনে পাইথন নিজ থেকেই ডেটা টাইপ পরিবর্তন করে ফেলে। এই ক্ষেত্রে ম্যানুয়ালি কোনো কাজ করতে হয় না।

number1 = 100
number2 = 20.65

addition = number1 + number2

print("Datatype of number1:", type(number1))
print("Datatype of number2:", type(number2))

print("Value of addition:", addition)
print("Datatype of addition:", type(addition))

উপরের কোডটি রান করালে নিচের মত আউটপুট দেখা যাবেঃ

Datatype of number1: <class 'int'>
Datatype of number2: <class 'float'>

Value of addition: 120.65
Datatype of addition: <class 'float'>

চিন্তার কোনো কারণ নেই, আমি বুঝিয়ে দিচ্ছি। সাধারণ জীবনে আমরা যে ক্যালকুলেটর ব্যবহার করি, সেখানেও ইন্টিজার নাম্বার এর সাথে ফ্লোট নাম্বার যোগ করলে একটি ফ্লোট সংখ্যাই আউটপুট দেয়। ঠিক সেই কাজটাই এখানে হয়েছে। প্রথমে আমরা দুটি নাম্বার নিলাম। যার প্রথমটি ইন্টিজার সংখ্যা এবং দ্বিতীয়টি ফ্লোট সংখ্যা। দুটি সংখ্যা যোগ করে আমরা তৃতীয় আরেকটি ভেরিয়েবলে রাখি। এরপর আমরা প্রত্যেকটি ভেরিয়েবলের টাইপ প্রিন্ট করে জেনে যাচ্ছি কোন ভেরিয়েবলের ডেটা টাইপ কোনটা। যেহেতু দুটি ভিন্ন ডেটা টাইপের যোগফল শেষ পর্যন্ত ফ্লোট আকারে প্রকাশ পেয়েছে তাই আউটপুটে আমরা ফ্লোট ডেটা টাইপ দেখতে পাচ্ছি। তাহলে বুঝা গেল পাইথন নিজ থেকেই ডেটা টাইপ পরিবর্তন করে নিয়েছে।


ইমপ্লিসিট টাইপ কনভার্সনের আরেকটি উদাহরণ দেখে নেই। তবে এবারে আমরা স্ট্রিং এর সাথে একটি নাম্বার যোগ করে দেখবো কি হয়।

number = 100
word = "50"

print("Data type of number:", type(number))
print("Data type of word:", type(word))

print(number + word)

উপরের কোডটি রান করালে নিচের মত আউটপুট দেখা যাবেঃ

Data type of number: <class 'int'> 
Data type of word: <class 'str'> 

Traceback (most recent call last): 
  File "python", line 7, in <module> 
TypeError: unsupported operand type(s) for +: 'int' and 'str'

একটি TypeError দিয়েছে তাই না! কি বুঝলেন? সংখ্যার সাথে স্ট্রিং এর যোগ করা সম্ভব নয়। কোনো অসুবিধা নেই, আমরা এই সমস্যার সমাধান এখন এক্সপ্লিসিট টাইপ কনভার্সনে করে ফেলব।


এক্সপ্লিসিট টাইপ কনভার্সন

এক্সপ্লিসিট টাইপ কনভার্সনে ম্যানুয়ালি ডেটার টাইপকে কনভার্ট করে নিতে হয়। এক্ষেত্রে পাইথনের নিজস্ব বিল্ট-ইন কিছু ফাংশন রয়েছে যেমন int(), float(), str() ইত্যাদি যাদেরকে ব্যবহার করে ইমপ্লিসিট টাইপ কনভার্সন করা হয়ে থাকে। আমরা যখন কোডগুলো করব তখন বুঝতে সুবিধা হবে এই ফাংশনগুলো কেন এবং কিভাবে ব্যবহার করতে হয়।

number = 100
word = "50"

print("Data type of number:", type(number))
print("Data type of word before Type Casting:", type(word))

word = int(word)
print("Data type of word after Type Casting:", type(word))

sum = number + word

print("Sum of number and word:", sum)
print("Data type of the sum:", type(sum))

উপরের কোডটি রান করালে নিচের মত আউটপুট দেখা যাবেঃ

Data type of number: <class 'int'>
Data type of word before Type Casting: <class 'str'>

Data type of word after Type Casting: <class 'int'>

Sum of number and word: 150
Data type of the sum: <class 'int'>

word নামের ভেরিয়েবলে আমরা 50 কে স্ট্রিং আকারে ষ্টোর করে রেখেছি। এরপর সপ্তম লাইনে এসে এই word ভেরিয়েবলকে int() ফাংশন এর ভিতর প্যারামিটার হিসেবে দিয়ে দিয়েছি। তাহলে int() ফাংশন কি করল? এটি word ভ্যারিয়েবলের ভ্যালুকে ইন্টিজারে পরিবর্তন করে ফেলল। এবার আমরা যোগফল বের করতে পারলাম। খেয়াল করবেন, আগেরবার ইমপ্লিসিটে পাইথন নিজ থেকেই ডেটা টাইপ পরিবর্তন করে ফেলেছে। কিন্তু এবার এক্সপ্লিসিটে আমরা int() নামক ফাংশনকে কল করে ডেটা টাইপ পরিবর্তন করেছি যা ম্যানুয়াল। ডেটার টাইপ একরকম কিন্তু ব্যবহার করছি অন্যরকম, এটিই টাইপ কাষ্টিং। সামনে ডেটা ইনপুট আউটপুটের পর্বগুলোতে আমরা টাইপ কনভার্সন বা টাইপ কাষ্টিং নিয়ে আরও বিস্তারিত আলোচনা করব।

Written by: Aditta

Tagged as: , , , , , , , , , .

Rate it
Previous post
Cobra - Hack To Protect Your System

today11 February, 2021

  • 37
close

Python Aditta

ডেটা টাইপ | পাইথন

আপনি একটি ঝুড়িতে যেসব জিনিষ রাখেন সেগুলো সাধারণত কঠিন পদার্থ। আবার বালতিতে বা গ্লাসে যে পানি ঢালেন সেটা তরল পদার্থ। মোট কথা পদার্থের ধরণ হয়েছে। ঠিক একইভাবে ভেরিয়েবলে আপনি যে ...


Similar posts