পাইথন প্রোগ্রামিং সি প্রোগ্রামিং জাভাস্ক্রিপ্ট পিএইচপি এসকিউএল জেকুয়েরি এইচটিএমএল সিএসএস বুটস্ট্রাপ এঙ্গুলার জেএস
ফোরাম
 

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


এই অধ্যায়ে আপনি পাইথন ডেটা টাইপ(data type) এবং ভ্যারিয়েবল ডিক্লেয়ারেশন(declaration) সম্মন্ধে জানবেন।


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

পাইথনে প্রত্যেকটি ভ্যালুর ডেটা টাইপ থাকে। পাইথনে যেহেতু সবকিছুই অবজেক্ট, সুতরাং ডেটা টাইপ হচ্ছে প্রকৃতপক্ষে ক্লাস এবং ভ্যারিয়েবলগুলো এই সমস্ত ক্লাসের ইন্সট্যান্স(instance) বা অবজেক্ট।

পাইথনে ডেটার বিভিন্ন টাইপ রয়েছে। নিম্নে কিছু গুরুত্বপূর্ণ টাইপ সম্মন্ধে সংক্ষিপ্তভাবে আলোচনা করা হলোঃ


পাইথন নাম্বার

পূর্ণ সংখ্যা, দশমিক সংখ্যা এবং জটিল সংখ্যা(Integers, floating point numbers এবং complex numbers) পাইথন নাম্বার ক্যাটাগরির মধ্যে পড়ে। এগুলোকে int, float এবং complex ক্লাস হিসাবে নির্ধারণ করা হয়।

একটি ভ্যারিয়েবল অথবা ভ্যালু কোন ক্লাসের অন্তর্গত তা জানার জন্য আপনি type() ফাংশন ব্যবহার করতে পারেন এবং একটি অবজেক্ট কোন ক্লাসের অন্তর্গত তা চেক করার জন্য isinstance() ফাংশন ব্যবহার করতে পারেন।

num = 5
print(num, "is of type", type(num))

num= 5.0
print(num, "is of type", type(num))

num= 1+2j
print(num, "is complex number?", isinstance(1+2j,complex))

কম্পিউটার মেমোরির উপর ভিত্তিকরে পূর্ণ সংখ্যা যেকোনো দৈর্ঘ্যের হতে পারে।

দশমিক সংখ্যা ১৫ দশমিক পর্যন্ত নিখুঁত হতে পারে। দশমিক বিন্দুর মাধ্যমে পূর্ণ এবং দশমিক অংশকে পৃথক করা হয়। উদাহরণস্বরূপ- এখানে 5 একটি পূর্ণ সংখ্যা এবং 5.0 একটি দশমিক সংখ্যা।

জটিল সংখ্যার গঠন হচ্ছে x + yj। যেখানে, x বাস্তব অংশ এবং y কাল্পনিক অংশ। নিচে জটিল সংখ্যার কিছু উদাহরণ দেওয়া হলোঃ

>>> a = 1234567890123456789
>>> a
1234567890123456789
>>> b = 0.1234567890123456789
>>> b
0.12345678901234568
>>> c = 1+2j
>>> c
(1+2j)

লক্ষ্য করলে দখেবেন float ভ্যারিয়েবল b এর শেষে 9 বাদ পড়েছে।


পাইথন লিস্ট

লিস্ট হচ্ছে আইটেম/উপাদানের ক্রমিক অর্ডার। এই ডেটা টাইপটি পাইথনে সবচেয়ে বেশি ব্যবহৃত হয়। লিস্টে ব্যবহৃত সকল উপাদান একই টাইপের হওয়া জরুরী নয়।

পাইথনে লিস্ট ডিক্লেয়ার করা একেবারেই সহজ। লিস্ট ডিক্লেয়ার করতে [ ] ব্রাকেট ব্যবহার করা হয় এবং কমা চিহ্নের মাধ্যমে এর উপাদানগুলোকে আলাদা করা হয়। যেমন-

>>> list_example = [5, 'java', 'python']

পাইথনে 0(শূন্য) দিয়ে ইনডেক্স শুরু হয় । লিস্ট থেকে কোনো একটি উপাদান বা উপাদানের রেঞ্জ খুঁজে বের করতে আমরা স্লাইসিং অপারেটর [ ] ব্যবহার করি।

num = [10,20,30,40,50,60,70,80]

# num[3] = 40
print("num[3] = ", num[3])

# num[0:4] = [10, 20, 30, 40]
print("num[0:4] = ", num[0:4])

# num[4:] = [50, 60, 70, 80]
print("num[4:] = ", num[4:])

লিস্ট মিউটেবল(mutable) অর্থাৎ লিস্টের উপাদান পরিবর্তন করা যায়।

>>> num = [1,2,3]
>>> num[2]=4
>>> num
[1, 2, 4]

পাইথন টাপল

একইভাবে টাপলও লিস্টের ন্যায় উপাদানের ক্রমিক অর্ডার। শুধু পার্থক্য হচ্ছে টাপল ইমিউটেবল(immutable) অর্থাৎ টাপলকে পরিবর্তন করা করা যায় না।

ডেটাকে সুরিক্ষিত রাখতেই মূলত টাপল(Tuple) ব্যবহৃত হয় এবং এটি ডাইনামিক্যালি পরিবর্তন না হওয়ায় লিস্টের তুলনায় দ্রুত কাজ করে।

এটাকে প্যারেন্থেসিস() এর মাধ্যমে সংজ্ঞায়িত করা হয় এবং এর উপাদানগুলো কমা চিহ্নের মাধ্যমে পৃথক করা হয়।

>>> t_example = (2,'Python', 3+4j)

স্লাইসিং অপারেটর [] এর মাধ্যমে আমরা টাপলের উপাদানগুলোকে খুঁজে বের করতে পারি কিন্তু পরিবর্তন করতে পারি না ।

t = (2,'Python', 3+4j)

# t[1] = 'Python'
print("t[1] = ", t[1])

# t[0:3] = (5, 'program', (1+3j))
print("t[0:3] = ", t[0:3])

# Generates error
# Tuples are immutable
t[0] = 10

পাইথন স্ট্রিং

স্ট্রিং হচ্ছে ইউনিকোড ক্যারেক্টার এর ক্রম(sequence of Unicode characters)। এটা প্রকাশের জন্য আমরা সিঙ্গেল অথবা ডাবল কোটেশন ব্যবহার করতে পারি এবং মাল্টি-লাইন স্ট্রিং এর জন্য আমরা ট্রিপল কোট(''' অথবা """) ব্যবহার করতে পারি।

>>> s = "This is a string"
>>> s = '''a multiline

লিস্ট এবং টাপল এর ন্যায় স্ট্রিং এর ক্ষেত্রেও আমরা স্লাইসিং অপারেটর [] ব্যবহার করতে পারি। স্ট্রিং ইমিউটেবল, অর্থাৎ পরিবর্তন হয় না।

s = 'Hello world!'

# s[4] = 'o'
print("s[4] = ", s[4])

# s[6:11] = 'world'
print("s[6:11] = ", s[6:11])

# এরর উৎপন্ন হবে
# পাইথনে স্ট্রিং পরিবর্তন হয় না।
s[5] ='d'

পাইথন সেট

সেট হচ্ছে ইউনিক উপাদানের সংগ্রহ। এটাকে ব্রাসেস{ } এর মাধ্যমে সংজ্ঞায়িত করা হয় এবং এর মধ্যে উপাদানগুলোকে কমা দ্বারা পৃথক করা হয়। সেট এর উপাদানসমূহের ক্রম ঠিক থাকে না।

উদাহরণস্বরূপঃ

a = {5,2,3,1,4}

# সেট ভ্যারিয়েবল প্রিন্ট করা
print("a = ", a)

# data type of variable a
print(type(a))

বীজগণিতের মত পাইথনেও আমরা দুটি সেটের মধ্যে ইউনিয় এবং ইন্টারসেকশন করতে পারি। সেটের ভ্যালুসমূহ ইউনিক।

উদাহরণস্বরূপঃ

>>> a = {1,2,2,3,3,3}
>>> a
{1, 2, 3}

সেটের উপাদানসমূহের ক্রম ঠিক না থাকায় ইন্ডেক্সিং এর কোনো অর্থ নাই। সুতরাং স্লাইসিং অপারেটর[] কাজ করে না।

উদাহরণস্বরূপঃ

>>> a = {1,2,3}
>>> a[1]
Traceback (most recent call last):
  File "", line 301, in runcode
  File "", line 1, in 
TypeError: 'set' object does not support indexing

পাইথন ডিকশনারি

ডিকশনারি(Dictionary) হচ্ছে উপাদান/আইটেমসমূহের key-value জোড়ায় জোড়ায় সংগ্রহ।

আমরা যখন প্রচুর পরিমাণ ডেটা নিয়ে কাজ করি তখন এটি ব্যবহৃত হয়। ডিকশনারি থেকে নিখুঁতভাবে ডেটা পুনরুদ্ধার(retrieving) করা যায়। ভ্যালু পুনরুদ্ধার করতে অবশ্যই key জানতে হবে।

পাইথনে ব্রাসেস{} এর মধ্যে key:value জোড় তৈরি করে এবং প্রত্যেক জোড় কে কমা(,) চিহ্ন দিয়ে আলাদা করে একটি ডিকশনারি তৈরি করা হয়। key এবং value যেকোনো টাইপের হতে পারে।

উদাহরণস্বরূপঃ

উদাহরণস্বরূপঃ

>>> d = {1:'value','key':2}
>>> type(d)

ডিকশনারির উপাদানসমূহকে আপনি লিস্টের মতই এক্সেস করতে পারবেন। লিস্টে যেমন থার্ড ব্র্যাকেট এর মধ্যে ইনডেক্স দিয়ে উক্ত ইনডেক্সের ভ্যালু পুনরূদ্ধার করতে পারতেন, তেমনি এক্ষেত্রেও ইনডেক্স এর পরিবর্তে key ব্যবহার করে সংশ্লিষ্ট ভ্যালু অ্যাক্সেস করতে পারবেন।

উদাহরণস্বরূপঃ

d = {1:'value','key':2}
print(type(d))

print("d[1] = ", d[1]);

print("d['key'] = ", d['key']);

# Generates error
print("d[2] = ", d[2]);

ডেটা টাইপ রূপান্তর(Conversion between data type)

টাইপ কনভার্সন ফাংশন যেমন- int(), float(), str() ইত্যাদি ব্যবহার করে আপনি ডেটা টাইপ পরিবর্তন করতে পারবেন অর্থাৎ এক ধরণের ডেটা থেকে অন্য ধরণের ডেটায় রূপান্তর করতে পারবেন।

উদাহরণস্বরূপঃ

>>> float(10)
10.0

দশমিক থেকে পূর্ণ সংখ্যায় রূপান্তর করলে দশমিক অংশ বাদ যায় কারণ এটি শূন্যর কাছাকাছি একটি মান ফেরত দেয়।

উদাহরণস্বরূপঃ

>>> int(5.5)
5
>>> int(-5.5)
-5

স্ট্রিং এ এবং স্ট্রিং থেকে রূপান্তরের সময় সামঞ্জস্যপূর্ণ ভ্যালু ব্যবহার করতে হবে।

উদাহরণস্বরূপঃ
>>> float('5.6')
5.6
>>> str(20)
'20'
>>> int('1p')
Traceback (most recent call last):
  File "", line 301, in runcode
  File "", line 1, in 
ValueError: invalid literal for int() with base 10: '1p'

আপনি এক ক্রমকে অন্য ক্রমেও রূপান্তর করতে পারবেন।

উদাহরণস্বরূপঃ
>>> set([1,2,3, 4])
{1, 2, 3, 4 }
>>> tuple({5,6,7, 8})
(5, 6, 7, 8)
>>> list('bangla')
['b', 'a', 'n', 'g', 'l', 'a']

উদাহরণস্বরূপঃ
>>> dict([[1,2],[3,4]])
{1: 2, 3: 4}
>>> dict([(3,9),(4,16)])
{3: 9, 4: 16}