Operators কি?
অন্যান্য Programming Language এর মতোই পাইথন এ Operators হচ্ছে কতগুলো symbol, যা সাধারণত একটি action বা process কে represents করে ।
সহজ ভাবে যদি বলা হয় তা হচ্ছে Python Interpreter কে কিছু নির্দিষ্ট mathematical, logical এবং relational সহ আরো ভিন্ন ধরণের operation করার নির্দেশনা পাঠায় এবং নির্দেশনা অনুযায়ী Python Interpreter সেই নির্দিষ্ট কাজের ফলাফল প্রদর্শন করে।
এইবার নিচের উদাহরণ টি একটু খেয়াল করবো
first_number = 10 second_number = 15 result = first_number + second_number print(result)
25
ব্যাখ্যা:
উপরের কোডটুকু রান করলে দেখতে পারবো যে আমাদের আউটপুট হিসেবে 25 পাবো। এইখানে আমরা প্রথমে first_number এবং second_number দুইটা variable নিয়েছি এবং variable দুইটিতে দুইটা ভ্যালু যথাক্রমে 10 এবং 15 assign করেছি। এসাইন করার জন্য আমরা “=” sign ব্যাবহার করেছি। এই “=” sign হচ্ছে একধরণের Operator (Assignment )। আবার ৩ নাম্বার লাইন এ first_number এবং second_number এর ভ্যালু দুটি কে যোগ করে result ভ্যারিয়েবল এ এসাইন করেছি। যোগ করার জন্য আমরা “+” (plus ) Sign ব্যবহার করেছি, এইক্ষেত্রে + হচ্ছে একধরণের Arithmetic Operator । পাইথনে ভিন্ন ধরণের Operator ব্যবহার হয় যা আমরা প্রত্যেকটিই পর্যায়ক্রমে দেখবো।
নোট:
Operator এর দুই পাশে যেই সব variable অথবা value থাকে, Programming Language এর পরিভাষায় একে Operand বলে ।
উপরের উদাহরণে first_number এবং second_number হচ্ছে Operand
python এ Operator এর শ্রেণীবিভাগ
পাইথন অপারেটরদের নিম্নলিখিত গ্রুপে বিভক্ত করে:
- Arithmetic Operators.
- Assignment Operators.
- Comparison Operators.
- Logical Operators.
- Membership Operators.
- Identity Operators.
- Bitwise Operators.
Arithmetic Operators:
গাণিতিক ভিন্ন হিসাব নিকাশ করার জন্য যে symbol বা চিহ্ন ব্যবহার করা হয়,পাইথনে এ গুলোকে বলা হয় Arithmetic Operators ।এখানে একটা বিষয় জানা দরকার যে , সব programming ল্যাংগুয়েজে Arithmetic Operators গুলা প্রায় একই রকম
Arithmetic Operator সমূহ নিম্নরুপঃ
অপারেটর | ব্যবহার | উদাহরণ | ব্যাখ্যা |
---|---|---|---|
+ | দুইটা Operand এর Add বা যোগ করার জন্য ব্যবহার করা হয় | print(31+50) | বাম পাশের প্রোগ্রাম টি কে যদি রান করাহয় তাহলে, 31 কে 50 এর সাথে যোগ করলে ফলাফল হবে 81 |
– | দুইটা Operand এর Subtract বা বিয়োগ করার জন্য ব্যবহার করা হয় | print(50-32) | প্রোগ্রাম টি কে যদি রান করাহয় তাহলে, 50 থেকে 32 বিয়োগ করলে ফলাফল হবে 18 |
* | ইটা Operand এর Multiply বা গুন করার জন্য ব্যবহার করা হয় | print(31*50) | প্রোগ্রাম টি কে যদি রান করাহয় তাহলে, 31 কে 50 দ্বারা গুন করলে ফলাফল হবে 1550 |
/ | দুইটা Operand এর Divide বা ভাগ করার জন্য ব্যবহার করা হয় | print(100/50) | প্রোগ্রাম টি কে যদি রান করাহয় তাহলে, 100 কে 50 দ্বারা ভাগ করলে ফলাফল হবে 2 |
% | দুইটা Operand এর Modulus বা ভাগ করার পর ভাগশেষ বের করার জন্য ব্যবহার করা হয় | print(50%20) | প্রোগ্রাম টি কে যদি রান করাহয় তাহলে, 50 কে 20 দ্বারা ভাগ করলে ফলাফল হবে 10 |
// | দুইটা Operand এর Floor division -ভাগশেষ বাদে পূর্ণ সংখ্যায় ভাগফল বের করার জন্য ব্যবহার করা হয় | print(50//20) | প্রোগ্রাম টি কে যদি রান করাহয় তাহলে, 50 কে 20 দ্বারা ভাগ করলে ফলাফল হবে 2 |
** | দুইটা Operand এর মধ্যে দ্বিতীয় operand টি প্রথম Operand এর Power হিসেবে ব্যবহার করা হয় | print(2**3) | প্রোগ্রাম টি কে যদি রান করাহয় তাহলে, ফলাফল হবে 8 (2 * 2 * 2) |
Assignment Operator
ভ্যারিয়েবল এ কোনো value সংরক্ষণ করতে যেইসব symbol বা চিহ্ন ব্যবহৃত হয়, এগুলোকে বলা হয় Assignment Operator
Assignment Operator সমূহ নিম্নরুপঃ
অপারেটর | ব্যবহার | উদাহরণ | ব্যাখ্যা |
---|---|---|---|
= | ডান দিকের operand এর মান বাম পাশের operand এ সংরক্ষণ করে | z=x+y | z = x + y অর্থ x + y এর মান x তে এ সংরক্ষণ করা |
+= | ডান দিকের operand এর মান বাম পাশের operand এর সাথে যোগ করে নতুন করে বাম দিকের operand এ সংরক্ষণ কর | x += y | x += y এর অর্থ x = x+y |
-= | ডান দিকের operand এর মান বাম পাশের operand থেকে বিয়োগ করে নতুন করে বাম দিকের operand এ সংরক্ষণ কর | x -= y | x -= y এর অর্থ x = x – y |
*= | দুই পাশের operand গুন করে বাম দিকের operand এ সংরক্ষণ করে | x *= y | x *= y এর অর্থ x = x * y |
/= | বাম দিকের operand ডান পাশের operand দিয়ে ভাগ করে প্রাপ্ত ভাগফল বাম দিকের operand এ সংরক্ষণ করে | x /= y | x /= y এর অর্থ x = x / y |
%= | দুই দিকের operands এর মডুলাস (ভাগশেষ) বাম পাশের operand এ সংরক্ষণ করে | x %= y | x %= y এর অর্থ x = x % y |
**= | দুই দিকের operands এর পাওয়ার বাম পাশের operand এ সংরক্ষণ করে | x = y | x **= y এর অর্থ x = x^y ( x to the power y ) |
//= | দুই দিকের operands এর Floor Division বাম পাশের operand এ সংরক্ষণ করে | x //= y | x //= y এর অর্থ x = x // y |
&= | দুই দিকের operands এর Bitwise AND বাম পাশের operand এ সংরক্ষণ করে | x &= 5 | x &= 5 এর অর্থ x = x & 5 |
|= | দুই দিকের operands এর Bitwise OR বাম পাশের operand এ সংরক্ষণ কর | x |= 5 | x |= 5 এর অর্থ x = x|5 |
^= | দুই দিকের operands এর Bitwise xOR বাম পাশের operand এ সংরক্ষণ করে | x ^= 5 | x ^= 5 এর অর্থ x = x ^ 5 |
>>= | দুই দিকের operands এর Bitwise right shift বাম পাশের operand এ সংরক্ষণ করে | x >>= 5 | x >>= 5 এর অর |
Comparison Operator
যেইসব symbol বা চিহ্ন যা দুইটি variable এর একটির সাথে আরেকটির compare করার জন্য ব্যবহার করা হয় Programming Language এর পরিভাষায় এ গুলোকে বলা হয় Comparison Operators. Comparison Operator সাধারণত কোনো condition উপরে ভিত্তিকরে True অথবা False রিটার্ন করে।
Comparison Operator সমূহ নিম্নরুপঃ
অপারেটর | ব্যবহার | উদাহরণ | ব্যাখ্যা |
---|---|---|---|
> | বামপক্ষ এর মান ডানপক্ষের চেয়ে বড় হলে True হবে।অন্যথায় False হবে | 30>25 | বামপক্ষ এর মান ডানপক্ষের চেয়ে বড় ,তাই True হবে। |
== | বামপক্ষ এর মান এবং ডানপক্ষ সমান হলে True হবে।অন্যথায় False হবে | 10==10 | বামপক্ষ এর মান এবং ডানপক্ষ সমান বলে True হবে। |
!= | বামপক্ষ এর মান এবং ডানপক্ষ সমান না হলে True হবে। অন্যথায় False হবে | 10 !=20 | বামপক্ষ এর মান এবং ডানপক্ষ সমান না , তাই True হবে। |
>= | বামপক্ষ এর মান ডানপক্ষের চেয়ে বড় বা সমান হলে True হবে। অন্যথায় False হবে | 10 >=10 | বামপক্ষ এর মান ডানপক্ষের মান সমান তাই True হবে |
Logical Operators
Logical Operator হচ্ছে সেইসব Operator যা দুই বা তার ও অধিক condition উপর ভিত্তি করে সিদ্ধান্ত গ্রহণ করে।
Logical Operator সাধারণত দুই বা তার ও অধিক condition উপরে ভিত্তিকরে এটি True অথবা False রিটার্ন করে।
Logical Operator সমূহ নিম্নরুপঃ
অপারেটর | ব্যবহার | উদাহরণ | ব্যাখ্যা |
---|---|---|---|
and | উভয় Operand true হলে True Return করবে। অন্যথায় False হবে | print(5>3 and 30>20) | ফলাফল হিসেবে আমরা True পাবো। যেহেতু উভয় condition true |
or | উভয় Operand এর যেকোনো একটি True অথবা উভয়টি True হলে True Return করবে। অন্যথায় False হবে | print(5>3 or 3>20) | প্রথম condition টি True কিন্তু দ্বিতীয় condition টি False। যেহেতু যেকোনো একটি True অথবা উভয়টি True হলে True Return করবে। তাই এইখানে True হবে |
not | অপারেন্ড false হলে True | print(not(3>4)) | যেহেতু ৩ এর চেয়ে চার বড় নয়, এবং আমরা not ব্যাবহার করেছি তাই এইখানে True হবে |
Identity Operators
দুটি value অথবা variable মেমোরির একই অংশে অবস্থিত কিনা চেক করার জন্য পাইথনে is এবং is not দুটি Operator ব্যবহৃত হয়। পাইথনের পরিভাষায় এগুলোকে বলা হয় Identity Operator.
উল্লেখ্য: দুটি ভ্যারিয়েবল সমান হওয়ার অর্থ এই নয় যে তারা Identical. সুতরাং দুটি value সমান হলে তারা Identical নাও হতে পারে।
অপারেটর | ব্যবহার | উদাহরণ | ব্যাখ্যা |
---|---|---|---|
is | যদি দুটি Operand এর Identity একই হয় তাহলে True দিবে অন্যথায় False দিবে। | x = [“apple”, “banana”]y = [“apple”, “banana”]z = xprint(x is z) | Output: Trueপাইথনে লিস্ট এবং ডিকশনারি কে রেফারেন্স টাইপের ভ্যারিয়েবল বলে। অর্থাৎ, একই লিস্ট একাধিক ভ্যারিয়েবল এ এসাইং করলেও , সব গুলো ভ্যারিবল একই লিস্ট কে ধারণ করার জন্য , সব গুলো ভ্যারিয়েবল এর আইডেন্টিটি সমান। |
is not | যদি দুটি Operand এর Identity একই না হয় তাহলে True দিবে অন্যথায় False দিবে। | x = [“apple”, “banana”]y = [“apple”, “banana”]z = xprint(x is not z) | Output: False |
Membership Operators সমূহ নিম্নরুপঃ
Membership Operators
কোনো ভ্যালু বা ভ্যারিয়েবল string, list, tuple, set ক্রমের মধ্যে আছে কি না এবং dictionary কোনো কী(key)-এর উপস্থিতি আছে কিনা তা যাচাই করার জন্য পাইথনে in এবং not in ব্যবহৃত হয়। পাইথনের পরিভাষায় এগুলোকে মেম্বারশিপ অপারেটর(Membership operator) বলা হয়।
Membership Operators সমূহ নিম্নরুপঃ
অপারেটর | উদাহরণ | ব্যাখ্যা |
---|---|---|
& | print(a & b) | সেই Binary Bit গুলিই আসবে যেগুলো a এবং b variable দুটোতেই Binary Value Set বা 1 |
Or | print( x y ) | সেই Binary Bit গুলিই আসবে যেগুলো x এবং y variable দুটোর মধ্যে যেকোনো একটি Set বা 1 |
^ | x ^ y | সেই Binary Bit গুলিই আসবে যেগুলো x এবং y variable দুটোর মধ্যে যেকোনো একটি Set বা 1 কিন্তু দুটিই SET হওয়া যাবেনা। |
~ | ~x | যা আছে তার বিপরীত আসবে। অর্থাৎ : যদি x এর Binary Bit 0 থাকে, তাহলে Output আসবে 1 . একই ভাবে x এর Binary Bit 1 থাকে, Output আসবে 0 |
>> | x>>y | x এর Binary Bit গুলো y এর সমসংখ্যক Bit ডানে shift হবে। |
উদাহরন
উদাহরন ১) Arithmetic operators
x = 15 y = 4 # Output: x + y = 19 print('x + y =',x+y) # Output: x - y = 11 print('x - y =',x-y) # Output: x * y = 60 print('x * y =',x*y) # Output: x / y = 3.75 print('x / y =',x/y) # Output: x // y = 3 print('x // y =',x//y) # Output: x ** y = 50625 print('x ** y =',x**y)
উদাহরন ২) Comparison operators
x = 10 y = 12 # Output: x > y is False print('x > y is',x>y) # Output: x < y is True print('x < y is',x= y is False print('x >= y is',x>=y) # Output: x <= y is True print('x <= y is',x<=y)
উদাহরন ৩) Logical operators
x = True y = False print('x and y is',x and y) print('x or y is',x or y) print('not x is',not x)
উদাহরন ৪) Identity operators
x1 = 5 y1 = 5 x2 = 'Hello' y2 = 'Hello' x3 = [1,2,3] y3 = [1,2,3] # Output: False print(x1 is not y1) # Output: True print(x2 is y2) # Output: False print(x3 is y3)
উদাহরন ৫) Membership operators
x = 'Hello world' y = {1:'a',2:'b'} # Output: True print('H' in x) # Output: True print('hello' not in x) # Output: True print(1 in y) # Output: False print('a' in y)
এসো নিজে করি
গুরুত্বপূর্ন প্রশ্নসমুহ
a = 4 b = 11 print(a | b) print(a >>2)
আউটপুট কি হবে ?
মাঝের তিনটি অক্ষর দিয়ে তৈরি একটি স্ট্রিং তৈরি করুন
Case 1 : str1 = "GtfeRifLjta"
Case 1 : str2 = "HySonRy"
স্ট্রিং অক্ষরগুলি এমনভাবে সাজান যাতে ছোট হাতের অক্ষরগুলি প্রথমে আসে
str1 = VivaSoft
দুটি স্ট্রিং ভারসাম্যপূর্ণ কিনা তা পরীক্ষা করার জন্য একটি প্রোগ্রাম লিখুন। উদাহরণস্বরূপ, স্ট্রিং s1 এবং s2 ভারসাম্যপূর্ণ হয় যদি s1-এর সমস্ত অক্ষর s2 তে উপস্থিত থাকে। character এর অবস্থান কোন ব্যাপার না।
Case 1: s1 = “Yn” s2 = “PYnative” , Output: True
Case 2: s1 = “Ynf” s2 = “PYnative” , Output: False
নিম্নলিখিত স্ট্রিং-এ প্রতিটি বিশেষ প্রতীক # দিয়ে প্রতিস্থাপন করুন
Input: str1 = ‘/*Akash is @developer & musician!!’
Output: ##Akash is #developer # musician##
ইন্টারভিউ প্রশ্নোত্তর
১) x = a + b – 25 ;এখানে, (a+b-25) কে কি বলবো , (a,b) কে কি বলবো ?
২) 100 / 25 আউটপুট কি হবে ?
৩) অপারেটর is,not,in এর উদ্দেশ্য কি?
৪) পাইথনে / এবং // অপারেটরের মধ্যে পার্থক্য কী?
৫) কিভাবে ternary অপারেটরগুলি পাইথনে ব্যবহার করা যেতে পারে?