নাম্বার :
পূর্ণসংখ্যা এবং float পয়েন্টগুলি দশমিক বিন্দুর উপস্থিতি বা অনুপস্থিতি দ্বারা পৃথক করা হয়। উদাহরণস্বরূপ, 5 একটি পূর্ণসংখ্যা যেখানে 5.0 একটি ফ্লোটিং-পয়েন্ট সংখ্যা। পাইথনের অন্যতম গুরুত্বপূর্ণ একটি ডেটা টাইপ হল নাম্বার , পাইথনে তিন ধরণের নাম্বার আছে । পূর্ণসংখ্যা এবং float পয়েন্টগুলি দশমিক বিন্দুর উপস্থিতি বা অনুপস্থিতি দ্বারা পৃথক করা হয়। উদাহরণস্বরূপ, 5 একটি পূর্ণসংখ্যা যেখানে 5.0 একটি ফ্লোটিং-পয়েন্ট সংখ্যা।
১. পূর্ণ সংখ্যা ( Integer সংক্ষিপ্ত রূপ হল int )
২. দশমিক ভগ্নাংসপূর্ণ সংখ্যা ( Floating Point numbers সংক্ষিপ্ত রূপ হল float )
৩. জটিল সংখ্যা ( Complex numbers সংক্ষিপ্ত রূপ হল complex )
১) Integer : ইন্টিজার মানে হল পূর্ণ সংখ্যা ।পাইথনে সমস্ত ধনাত্মকপূর্ণ ও ঋণাত্মকপূর্ণ সংখ্যাকেই Integer বলা হয়।
যেমনঃ 1, 5, 50, 666, 0 , -29, – 1000 ।
একটি স্ট্রিং ভ্যালু এবং একে Integer এ রূপান্তর করার জন্য int() ফাংশন ব্যবহার করা হয় ।যেমন int (‘4′) লিখে এন্টার চাপলে, পাইথন 4 কে Integer হিসেবে রিটার্ন করবে। তবে এইখানে খেয়াল রাখতে হবে যে স্ট্রিং ভ্যালু টি যেন অবশ্যই সংখ্যা হয় int(’12’) আর যদি int (‘Hi’) এই ভাবে লিখলে program টি রান করবে না।
Example:
print(int('1000 ')) # output 1000 print(int('-234')) # output -234
কম্পিউটারের মেমোরিতে ইন্টিজার সংরক্ষণের উপর নির্ভর করে,পাইথন ২ তে ইন্টিজারকে দুই ভাগে ভাগ করা হয়েছে।
ক) Plain Integers – কম্পিউটারের মেমোরিতে সংরক্ষণের জন্য 32 bit জায়গার প্রয়োজন।
খ) Long Integers – আনলিমিটেড মানে ইন্টিজার কত বড় হবে তার কোন লিমিট নেই। অন্যান্য প্রোগ্রামিং ল্যাঙ্গুয়েজে যেমন কম্পিউটারের মেমোরির উপর ভিত্তি করে ইন্টিজার সংরক্ষণের একটি নির্দিষ্ট সীমা থাকে পাইথনে ইন্টিজার এর কোন সীমা নাই। যতক্ষণ পর্যন্ত কম্পিউটারের মেমোরী মানা না করবে, ততক্ষণ পর্যন্তই প্রোগ্রামে ইন্টিজার ঢোকানো যাবে।
আর পাইথন ৩ তে ইন্টিজার মানেই Long Integers কোন Plain Integers নেই।
২) Floating : Floating Point numbers মানে হল দশমিক ভগ্নাংশযুক্ত সংখ্যা।যেমনঃ 1.22, 43.34, – 12.5555।
যেকোন ফ্লটিং পয়েন্ট নাম্বারকে ইন্টিজারে কনভার্ট করা যায় int() ফাংশনের মাধ্যমে এবং যেকোন ইন্টিজারকে ফ্লটিং পয়েন্ট নাম্বারে কনভার্ট করা যায় float() ফাংশনের মাধ্যমে।
Example:
print(int('1000.1 ')) # output 1000 print(float('100 ')) # output 100.0
এইখানে লক্ষণীয় হল ইন্টিজার নাম্বারের ক্ষেত্রে পাইথন সবসময় দশমিকের পর শূন্য বসিয়ে ইন্টিজারকে ফ্লটিং পয়েন্ট নাম্বারে রূপান্তর করে। পাইথনে ফ্লটিং পয়েন্ট নাম্বারের রেঞ্জ বা সীমা নির্দিষ্ট।এক্ষেত্রে 17 দশমিক স্থান পর্যন্ত মান পাইথন রাখতে পারবে এবং এর পরের মান পাইথন প্রকাশ করবে না।
যেমন –
print(5.0/3.0) # Output 1.6666666666666667
পাইথন ফ্লটিং পয়েন্ট নাম্বারের ক্ষেত্রে পাইথন দশমিকের পর শুধু 16 ডিজিটই প্রকাশ করতে পারবে, এরপর আর পারবে না।
৩) Complex :
কমপ্লেক্স নাম্বারের দুইটি অংশ থাকে। যেমন a + bj যদি একটি কমপ্লেক্স নাম্বার হয় , তবে এর –
ক) রিয়েল অংশ- a (Real part) ,
খ) ইমেজিনারী অংশ- b (imaginary part) ।
পাইথনে এই দুইটি অংশই দশমিক ভগ্নাংশপূর্ণ সংখ্যা নিয়ে গঠিত। পাইথনে কমপ্লেক্স নাম্বারে, ইমেজিনারী নাম্বার হিসেবে ‘j’ অক্ষরটি ব্যবহার করা হয়, কিন্তু সাধারণত ম্যাথে ‘i’ অক্ষরটি ব্যবহার করা হয়। তাই প্রোগ্রামে j পরিবর্তনে i ব্যবহার করা হলে সিনট্যাক্স এরর আসবে।কিন্তু দুটোই একই অর্থ বোঝায় অর্থাৎ
i = the square root of -1 = √- 1 j = the square root of -1 = √- 1
যেকোন নাম্বার মানেই তা ‘Real Number’ যেমন- 0, 3,-5, ∏ ।আর সব রিয়েল নাম্বারই আসলে কমপ্লেক্স নাম্বার।কারণ প্রত্যেকটি রিয়েল নাম্বারের আরেকটি অংশ হল ইমেজিনারী নাম্বার। পাইথন ব্যবহার করে খুব সহজেই একটি ‘Real Number’ এর রিয়েল ও ইমেজিনারী অংশ বের করে ফেলা যায়।আবার যেকোন রিয়েল সংখ্যাকে কমপ্লেক্স নাম্বারে কনভার্ট করা যায়।এর জন্য complex() ফাংশন ব্যবহার করা হয়।
print(complex(5)) # output (5+0j)
এখানে 5 একটি সংখ্যা বা পূর্ণ সংখ্যা বা ইন্টিজার। এটি একটি Real Number আর প্রত্যেকটি রিয়েল নাম্বারই একেকটি কমপ্লেক্স নাম্বার তাই complex (5) লিখে এন্টার চাপার সাথে সাথে পাইথন রিয়েল নাম্বারকে কমপ্লেক্স নাম্বারে রূপান্তর করল যার ইমেজিনারী অংশ হল 0 (শূন্য)।
আবার পাইথনের সাহায্যে যেকোন কমপ্লেক্স নাম্বারের দুইটি অংশকে খুব সহজেই আলাদা করে বের করা যায়।এর জন্য দুইটি মেথড ব্যবহার করা হয়।রিয়েল অংশ বের করার জন্য – c.real , এখানে c মানে হল কমপ্লেক্স নাম্বার আর ইমেজিনারী অংশ বের করার জন্য – c.imag মেথড ব্যবহার করা হয়।
x=(4+8j)
এখানে (4+8j) একটি কমপ্লেক্স নাম্বার যাকে x নামে একটি ভেরিয়েবলের মাধ্যমে প্রকাশ করা হচ্ছে। এখন এর ইমেজিনারী অংশ বের করার জন্য জন্য লিখতে হবে x.imag (এখানে x হল ভেরিয়েবলের নাম, যা কমপ্লেক্স নাম্বারকে উপস্থাপন করছে)। তারপর এন্টার চাপতে হবে।
x=(4+8j) print( x.imag) # output 8.0
একই ভাবে রিয়েল অংশও বের করা যায়
print( x.real ) # output 4.0
এর রিয়েল অংশ হল 4.0 যা কিনা একটি দশমিক ভগ্নাংশপূর্ণ সংখ্যা।
নাম্বারকে বিভিন্ন অ্যারিথমেটিক অপারেটরের মাধ্যমে প্রকাশ করা যায়।যেমনঃ
যোগ করার জন্য –
print(4+2) # output 6 print(print(10+2)) # output 12 x = 40+30 print(x) # output 70
বিয়োগ করার জন্য –
print(3–2) # output 1 print(print(8–2)) # output 6 x = 30– 15 print(x) # output 15
গুণ করার জন্য –
print(4*3) # output 12 print(7*7) # output 49 x = 5*8 print(x) # output 40
ভাগ করার জন্য –
print(12/3) # output 4.0 print(12//3) # output 4
স্লেশ (/) চিহ্নকে পাইথনে ডিভিশন অপারেটর হিসেবে ব্যবহার করা হয়।
এখানে লক্ষণীয় সিঙ্গেল স্লেশ(/) ব্যবহার করে পাইথনে ডিভিশন ফলাফল সবসময় ফ্লটিং পয়েন্ট হয়।
রাউন্ড ফলাফল পেতে হলে ডাবল স্লেশ(//) ব্যবহার করতে হবে।
ভাগশেষ করার জন্য –
print(22%6) # output 4 print(5%3) # output 2 print(4%4) # output 0
ভাগশেষ নির্ণয়ের জন্য Percentage sign (%) ব্যবহার করা হয় যা কিনা Modulos অপারেটর হিসেবে পরিচিত।
Built-in math function:
পাইথনে অনেকগুলো ম্যাথ ফাংশন আছে, যেগুলো আসলে বিল্ট ইন টাইপ।ইতোমধ্যে তিনটির ব্যবহার দেখেছি – int(), float(), complex() ফাংশন।
আরও কিছু ফাংশনের ব্যবহার দেখি-
abs(x): এই ফাংশনের মাধ্যমে যেকোন নাম্বারের পরম মান () বের করা যায়। ফাংশন প্যারামিটারের জায়গায় যেকোন সংখ্যা লিখলে,পাইথন তার ভ্যালু রিটার্ন করবে।
print(abs(-50)) # output 50 print(abs(10.50)) # output 10.5
pow(x,y): x to the power of y ‘ এর মান বের করার জন্য এই ফাংশনটি ব্যবহার করা হয়।
print(pow(5,6)) # output 15625 print(pow(10,2)) # output 100 'z = module value' অপশনাল। প্রয়োজন অনুযায়ী ব্যবহার করা যায়।
round(number[digit]): যেকোন দশমিক সংখ্যার রাউন্ড ফিগার বের করার জন্য এই ফাংশন ব্যবহার করা হয়।
print(round(566.4566,2)) # output 566.46 print(round(54.6666,1)) # output 54.7
অপশনাল প্যারামিটার ‘digit’। এর মানে কত সংখ্যা পর্যন্ত রাউন্ড ফিগার প্রয়োজন, তা উল্লেখ করতে হবে।
bin(): ইন্টিজারকে বাইনারী স্ট্রিং ভ্যালুতে প্রকাশের জন্য এই ফাংশন ব্যবহার করা হয়।
print(bin(1)) # output '1' print(bin(100)) # output '1100100' print(bin(25)) # output '11001'
oct(): ইন্টিজারকে অক্টেল স্ট্রিং ভ্যালুতে প্রকাশের জন্য এই ফাংশন ব্যবহার করা হয়।
print(oct(1)) # output '01' print(oct(100)) # output 0144
hex(): ইন্টিজারকে হেক্সাডেসিমাল স্ট্রিং ভ্যালুতে প্রকাশের জন্য এই ফাংশন ব্যবহার করা হয়।
print(hex(1)) # output '1' print(hex(50)) # output '32' print(hex(234)) # output 'ea'
উদাহরন
Example 1:
x = 1# int y = 2.8# float z = 1j # complex print(type(x)) print(type(y)) print(type(z)) # Output # class 'int' # class 'float' # class 'complex'
Example 2:
x = 1# int y = 2.8# float z = 1j # complex #convert from int to float: a = float(x) #convert from float to int: b = int(y) #convert from int to complex: c = complex(x) print(a) print(b) print(c) print(type(a)) print(type(b)) print(type(c)) # output # 1.0 # 2 # (1+0j) # class 'float' # class 'int' # class 'complex' **Example 3:** x= (4+8j) print(x.real) print(x.imag) #output # 4.0 # 8.0
Example 4:
x= 10 # Integer to binary print(bin(x)[2::]) # Integer to octal print(oct(x)[2::]) #output # 1010 # 12
Example 5:
x= 10 x_power = pow(10,4) print(x_power) y= -100 y_abs = abs(y) print(y_abs) # Output # 10000 # 100
এসো নিজে করি
১। পাইথনে বিভিন্ন প্রকারের নাম্বার এর বর্ণনা দিন
২। ১০^৪ এর আউটপুট পাইথনে বের করুন ।
৩। একটি ইন্টিজার নাম্বারকে বাইনারিতে কনভার্ট করুন।
৪। একটি অক্টাল নাম্বারকে বাইনারিতে কনভার্ট করুন ।
৫। একটি কমপ্লেক্স নাম্বারের ইমাজিনারি নাম্বারকে তার রিয়েল নাম্বারের সাথে গুণ করুন ।
ইন্টারভিউ প্রশ্নোত্তর
১) ১০, ১৫.৫০ এই দুইটি সংখ্যার টাইপ প্রিন্ট করুন
২) পাইথনে কমপ্লেক্স নাম্বারের ইমাজিনারি পার্ট কিভাবে বের করবেন ?
৩) ২^৩২ পাইথনে কিভাবে লিখবেন ?
৪) একটি অক্টাল নাম্বারকে বাইনারিতে কিভাবে কনভার্ট করা হয় ?
৫) পাইথনে কমপ্লেক্স নাম্বারের ইমাজিনারি হিসেবে কি ব্যবহার করা হয়?