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

পাইথন অপারেটরদের নিম্নলিখিত গ্রুপে বিভক্ত করে:

  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+yz = x + y অর্থ x + y এর মান x তে এ সংরক্ষণ করা
+=ডান দিকের operand এর মান বাম পাশের operand এর সাথে যোগ করে নতুন করে বাম দিকের operand এ সংরক্ষণ করx += yx += y এর অর্থ x = x+y
-=ডান দিকের operand এর মান বাম পাশের operand থেকে বিয়োগ করে নতুন করে বাম দিকের operand এ সংরক্ষণ করx -= yx -= y এর অর্থ x = x – y
*=দুই পাশের operand গুন করে বাম দিকের operand এ সংরক্ষণ করেx *= yx *= y এর অর্থ x = x * y
/=বাম দিকের operand ডান পাশের operand দিয়ে ভাগ করে প্রাপ্ত ভাগফল বাম দিকের operand এ সংরক্ষণ করেx /= yx /= y এর অর্থ x = x / y
%=দুই দিকের operands এর মডুলাস (ভাগশেষ) বাম পাশের operand এ সংরক্ষণ করেx %= yx %= y এর অর্থ x = x % y
**=দুই দিকের operands এর পাওয়ার বাম পাশের operand এ সংরক্ষণ করেx = yx **= y এর অর্থ x = x^y ( x to the power y )
//=দুই দিকের operands এর Floor Division বাম পাশের operand এ সংরক্ষণ করেx //= yx //= y এর অর্থ x = x // y
&=দুই দিকের operands এর Bitwise AND বাম পাশের operand এ সংরক্ষণ করেx &= 5x &= 5 এর অর্থ x = x & 5
|=দুই দিকের operands এর Bitwise OR বাম পাশের operand এ সংরক্ষণ করx |= 5x |= 5 এর অর্থ x = x|5
^=দুই দিকের operands এর Bitwise xOR বাম পাশের operand এ সংরক্ষণ করেx ^= 5x ^= 5 এর অর্থ x = x ^ 5
>>=দুই দিকের operands এর Bitwise right shift বাম পাশের operand এ সংরক্ষণ করেx >>= 5x >>= 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 হলে Trueprint(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
Orprint( 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>>yx এর 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 অপারেটরগুলি পাইথনে ব্যবহার করা যেতে পারে?