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) # Output 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 এর শ্রেণীবিভাগ

***পাইথন অপারেটরদের নিম্নলিখিত গ্রুপে বিভক্ত করে:***
1. Arithmetic Operators.
2. Assignment Operators.
3. Comparison Operators.
4. Logical Operators.
5. Membership Operators.
6. Identity Operators.
7. 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 তে এ সংরক্ষণ করা
+=
(Add AND)
ডান দিকের operand এর মান বাম পাশের operand এর সাথে যোগ করে নতুন করে বাম দিকের operand এ সংরক্ষণ কর
x += y
x += y এর অর্থ x = x+y
-=
(Subtract AND)
ডান দিকের operand এর মান বাম পাশের operand থেকে বিয়োগ করে নতুন করে বাম দিকের operand এ সংরক্ষণ করে
x -= y
x -= y এর অর্থ x = x – y
*=
(Multiply AND)
দুই পাশের operand গুন করে বাম দিকের operand এ সংরক্ষণ করে
x *= y
 
x *= y এর অর্থ x = x * y
/=
(Divide AND)
বাম দিকের operand ডান পাশের operand দিয়ে ভাগ করে প্রাপ্ত ভাগফল বাম দিকের operand এ সংরক্ষণ করে
x /= y
x /= y এর অর্থ x = x / y
%=
(Modulus AND)
দুই দিকের operands এর মডুলাস (ভাগশেষ) বাম পাশের operand এ সংরক্ষণ করে
x %= y
x %= y এর অর্থ x = x % y
 **=
(Exponent AND)
দুই দিকের operands এর পাওয়ার বাম পাশের operand এ সংরক্ষণ করে
x **= y
x **= y এর অর্থ x = x^y ( x to the power y )
//=
(Floor Division)
দুই দিকের operands এর Floor Division বাম পাশের operand এ সংরক্ষণ করে
x //= y
x //= y এর অর্থ x = x // y
&=
(Bitwise AND)
দুই দিকের operands এর Bitwise AND বাম পাশের operand এ সংরক্ষণ করে
x &= 5
x &= 5 এর অর্থ x = x & 5
|=
(Bitwise OR)
দুই দিকের operands এর Bitwise OR বাম পাশের operand এ সংরক্ষণ কর
x |= 5
x |= 5 এর অর্থ x = x | 5
^=
(Bitwise xOR)
দুই দিকের operands এর Bitwise xOR বাম পাশের operand এ সংরক্ষণ করে
x ^= 5
x ^= 5 এর অর্থ x = x ^ 5
>>=
(Bitwise right shift)
দুই দিকের operands এর Bitwise right shift বাম পাশের operand এ সংরক্ষণ করে
x >>= 5
x >>= 5 এর অর্থ x = x >> 5
 <<=
(Bitwise left shift
দুই দিকের operands এর Bitwise left shift বাম পাশের operand এ সংরক্ষণ করে
x <<= 5
x <<= 5 এর অর্থ x = x << 5
 
 
 
Comparison Operator
 
যেইসব symbol বা চিহ্ন যা দুইটি variable এর একটির সাথে আরেকটির compare করার জন্য ব্যবহার করা হয় Programming Language এর পরিভাষায় এ গুলোকে বলা হয় Comparison Operators. Comparison Operator সাধারণত কোনো condition উপরে ভিত্তিকরে True অথবা False রিটার্ন করে।
Comparison Operator সমূহ নিম্নরুপঃ
অপারেটর
ব্যবহার
উদাহরণ
ব্যাখ্যা
 >
(Greater Than)
বামপক্ষ এর মান ডানপক্ষের চেয়ে বড় হলে True হবে।অন্যথায় False হবে
30>25
বামপক্ষ এর মান ডানপক্ষের চেয়ে বড় ,তাই True হবে।
<
(Less Than)
বাম পক্ষ্য এর মান ডানপক্ষের চেয়ে ছোট হলে True হবে।অন্যথায় False হবে
25<30
বাম পক্ষ্য এর মান ডানপক্ষের চেয়ে ছোট, তাই True হবে।
==
(Equal )
বামপক্ষ এর মান এবং ডানপক্ষ সমান হলে True হবে।অন্যথায় False হবে
10==10
বামপক্ষ এর মান এবং ডানপক্ষ সমান বলে True হবে।
!= (Not equal)
বামপক্ষ এর মান এবং ডানপক্ষ সমান না হলে True হবে। অন্যথায় False হবে
10 !=20
বামপক্ষ এর মান এবং ডানপক্ষ সমান না , তাই True হবে।
>=
(Greater than or equal)
বামপক্ষ এর মান ডানপক্ষের চেয়ে বড় বা সমান হলে True হবে। অন্যথায় False হবে
10 >=10
বামপক্ষ এর মান ডানপক্ষের মান সমান তাই True হবে
<= Less than or equal
বামপক্ষ এর মান ডানপক্ষের চেয়ে ছোট বা সমান হলে 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 = x
print(x is z)

Output: True

পাইথনে লিস্ট এবং ডিকশনারি কে রেফারেন্স টাইপের ভ্যারিয়েবল বলে। অর্থাৎ, একই লিস্ট একাধিক ভ্যারিয়েবল এ এসাইং করলেও , সব গুলো ভ্যারিবল একই লিস্ট কে ধারণ করার জন্য , সব গুলো ভ্যারিয়েবল এর আইডেন্টিটি সমান।

is not
>যদি দুটি Operand এর Identity একই না হয় তাহলে True দিবে অন্যথায় False দিবে।
x = [“apple”, “banana”]
y = [“apple”, “banana”]
z = x
print(x is not z) </td>
Output: False
 
Membership Operators সমূহ নিম্নরুপঃ
Membership Operators
কোনো ভ্যালু বা ভ্যারিয়েবল string, list, tuple, set ক্রমের মধ্যে আছে কি না এবং dictionary কোনো কী(key)-এর উপস্থিতি আছে কিনা তা যাচাই করার জন্য পাইথনে in এবং not in ব্যবহৃত হয়। পাইথনের পরিভাষায় এগুলোকে মেম্বারশিপ অপারেটর(Membership operator) বলা হয়।
Membership Operators সমূহ নিম্নরুপঃ
অপারেটর
ব্যবহার
উদাহরণ
ব্যাখ্যা
in
ক্রম(sequence)-এর মধ্যে ভ্যলু/ভ্যারিয়েবল থাকলে True হবে।
print(10 in [10,20,30])
ফলাফল হিসেবে আমরা True পাবো। যেহেতু 10 লিস্ট আর মধ্যে বিদ্যমান
not in
ক্রম(sequence)-এর মধ্যে ভ্যলু/ভ্যারিয়েবল না থাকলে True হবে।
print(11 not in [10,20,30])
যেহেতু 11 লিস্টএর মধ্যে বিদ্যমান নয় এবং আমরা নোট ইন ব্যবহার করেছি তাই এখানে আমরা False পাবো
 
Bitwise Operators
যেইসব symbol বা চিহ্ন কম্পিউটারের binary পর্যায়ে এক বা একাধিক Integer Number এর মধ্যে নির্দিষ্ট বিট মূল্যায়ন,ম্যানিপুলেশন এবং decision বা সিদ্ধান্ত মূলক কাজ করার জন্য ব্যবহার করা হয়, এ গুলোকে বলা হয় Bitwise Operators.
Bitwise Operators সমূহ নিম্নরুপ
অপারেটর
উদাহরণ
ব্যাখ্যা
&
(and)
print(a & b)
সেই Binary Bit গুলিই আসবে যেগুলো a এবং b variable দুটোতেই Binary Value Set বা 1
 |
(or)
print( x | y )
সেই Binary Bit গুলিই আসবে যেগুলো x এবং y variable দুটোর মধ্যে যেকোনো একটি Set বা 1
^
(XOR)
x ^ y
 
সেই Binary Bit গুলিই আসবে যেগুলো x এবং y variable দুটোর মধ্যে যেকোনো একটি Set বা 1 কিন্তু দুটিই SET হওয়া যাবেনা।
 ~
(Not)
~x
যা আছে তার বিপরীত আসবে। অর্থাৎ : যদি x এর Binary Bit 0 থাকে , তাহলে Output আসবে 1 . একই ভাবে x এর Binary Bit 1 থাকে, Output আসবে 0
 <<
(Left Shift )
x<<y
x এর Binary Bit গুলো y এর সমসংখ্যক Bit বামে shift হবে।
 >>
(Right Shift )
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)

# Output: x == y is False

print('x == y is',x==y)

# Output: x != y is True

print('x != y is',x!=y)

# Output: 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 অপারেটরগুলি পাইথনে ব্যবহার করা যেতে পারে?