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

পাইথন অপারেটর


এই অধ্যায়ে আপনি পাইথনে ব্যবহৃত বিভিন্ন অপারেটর, এগুলোর সিনট্যাক্স এবং এগুলোকে কিভাবে আপনার নিজের প্রোগ্রামে প্রয়োগ করবেন তা জানবেন।

পাইথনে অপারেটর হলো বিশেষ ধরনের প্রতীক যা গাণিতিক এবং যৌক্তিক (logical) হিসাব-নিকাশে ব্যবহৃত হয়। অপারেটর(+, -, * ইত্যাদি) যে ভ্যালুকে অপারেট করে তাকে অপারেন্ড বলা হয়।

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

>>> 3+7
#Output: 10

এখানে + একটি অপারেটর যা যোগের কাজে ব্যবহৃত হয়েছে। 37 অপারেন্ড এবং 10 অপারেশনের আউটপুট।


পাইথনে অপারেটরসমূহঃ


এরিথমেটিক অপারেটর

গাণিতিক যোগ-বিয়োগ, গুণ-ভাগ ইত্যাদিতে এরিথমেটিক অপারেটর(Arithmetic operator) ব্যবহৃত হয়।

পাইথনে এরিথমেটিক অপারেটরসমূহ
অপারেটর অর্থ উদাহরণ
+ দুটি অপারেন্ডের যোগ বা ইউনারি যোগ(unary plus) x + y
- বাম অপারেন্ড থেকে ডান অপারেন্ড বিয়োগ বা ইউনারী বিয়োগ x - y
* দুটি অপারেন্ডের গুণ x * y
/ বাম অপারেন্ডকে ডান অপারেন্ড দিয়ে ভাগ(ফলাফল সব সময় দশমিক হবে) x / y
% মডিউলাস(Modulus) - বাম অপারেন্ডকে ডান অপারেন্ড দিয়ে ভাগ করে ভাগশেষ x % y (x/y এর ভাগশেষ)
// Floor division -ভাগশেষ বাদে পূর্ণ সংখ্যায় ভাগফল x // y
** সূচক(Exponent)- ডান অপারেন্ড বাম অপারেন্ড এর সূচক x**y (x এর সূচক y)

উদাহরণঃ পাইথনে এরিথমেটিক অপারেটর

x = 10
y = 4

print('x + y =',x+y)
# Output: x + y = 14
 
print('x - y =',x-y)
# Output: x - y = 6

print('x * y =',x*y)
# Output: x * y = 40

print('x / y =',x/y)
# Output: x / y = 2.50

print('x // y =',x//y)
# Output: x // y = 3

print('x ** y =',x**y)
# Output: x ** y = 10000


কম্প্যারিজন অপারেটর

দুই বা ততোধিক ভ্যালুর মধ্যে তুলনা করতে কম্প্যারিজন অপারেটর ব্যবহৃত হয়। কোনো শর্তের(condition) উপরে ভিত্তিকরে এটি হয় True অথবা False রিটার্ন করে।

পাইথনে কম্প্যারিজন অপারেটরসমূহ
অপারেটর অর্থ উদাহরণ
> Greater Than - বামপক্ষ ডানপক্ষের চেয়ে বড় হলে True হবে। x > y
< Less Than - বাম পক্ষ্য ডানপক্ষের চেয়ে ছোট হলে True হবে। x < y
== Equal to - বামপক্ষ এবং ডানপক্ষ সমান হলে True হবে। x == y
!= Not equal to - বামপক্ষ এবং ডানপক্ষ সমান না হলে True হবে। x != y
>= Greater than or equal to - বামপক্ষ ডানপক্ষের চেয়ে বড় বা সমান হলে True হবে। x >= y
<= Less than or equal to - বামপক্ষ ডানপক্ষের চেয়ে ছোট বা সমান হলে True হবে। x <= y

উদাহরণঃ পাইথনে কম্প্যারিজন অপারেটর

x = 10
y = 15

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)
# Output: x >= y is False

print('x <= y is',x<=y)
# Output: x <= y is True


লজিক্যাল অপারেটর

পাইথনে and, or এবং not অপারেটরসমূহকে লজিক্যাল অপারেটর(Logical operator) বলা হয়।

পাইথনে লজিক্যাল অপারেটরসমূহ
অপারেটর অর্থ উদাহরণ
and উভয় অপারেন্ড true হলে True a and b
or যেকোনো একটি অপারেন্ড true হলে True a or b
not অপারেন্ড false হলে True not a

উদাহরণঃ পাইথনে লজিক্যাল অপারেটর

a = True
b = False

print('a and b is',a and ab)
# Output: a and b is False

print('a or b is',a or b)
# Output: a or b is True

print('not a is',not a)
# Output: not a is False


লজিক্যাল অপারেটর সম্মন্ধে আরও জানতে truth table অধ্যায় ভিজিট করুন।


বিটওয়াইজ অপারেটর

পাইথনে বাইনারি সংখ্যা স্ট্রিং এর মতই এবং এ সংখ্যাকে অপারেট করার জন্য বিটওয়াইজ অপারেটর ব্যবহৃত হয়। বিট এর সাথে বিট অপারেট হওয়ায় নামটি যথাপোযুক্ত।

উদাহরণস্বরূপঃ 2 এর বাইনারি মান 10 এবং 7 এর বাইনারি মান 111

মনেকরি, নিচের টেবিলে x = 10 (বাইনারিতে 0000 1010) এবং y = 4 (বাইনারিতে 0000 0100)

পাইথনে বিটওয়াইজ অপারেটর
অপারেটর অর্থ উদাহরণ x = 10, y = 4
& Bitwise AND x& y = 0 (0000 0000)
| Bitwise OR x | y = 14 (0000 1110)
~ Bitwise NOT ~x = -11 (1111 0101)
^ Bitwise XOR x ^ y = 14 (0000 1110)
>> Bitwise right shift x>> 2 = 2 (0000 0010)
<< Bitwise left shift x<< 2 = 42 (0010 1000)

এসাইনমেন্ট অপারেটর

ভ্যারিয়েবলে ভ্যালু এসাইন বা আরোপ করার জন্য পাইথনে এসাইনমেন্ট অপারেটর(Assignment operator) ব্যব্যহৃত হয়।

a = 10 একটি সাধারণ এসাইনমেন্ট অপারেটর যা ডানপাশের ভ্যালু 10 কে বামপাশের ভ্যারিয়েবল a তে এসাইন করে।

পাইথনে বিভিন্ন ধরণের অপারেটর আছে যেমন- a += 5 ভ্যারিয়েবলের সাথে ভ্যালু যোগ করে যোগফল পরবর্তীতে একই ভ্যারিয়েবলে এসাইন করে। এটি a = a + 5 এর সমতুল্য।

পাইথনে এসাইনমেন্ট অপারেটর
অপারেটর উদাহরণ সমতুল্য
= x = 5 x = 5
+= x += 5 x = x + 5
-= x -= 5 x = x - 5
*= x *= 5 x = x * 5
/= x /= 5 x = x / 5
%= x %= 5 x = x % 5
//= x //= 5 x = x // 5
**= x **= 5 x = x ** 5
&= x &= 5 x = x & 5
|= x |= 5 x = x | 5
^= x ^= 5 x = x ^ 5
>>= x >>= 5 x = x >> 5
<<= x <<= 5 x = x << 5

বিশেষ অপারেটর

উপরোক্ত অপারেটর ছাড়াও পাইথনে কিছু বিশেষ অপারেটর(Special operator) রয়েছে। যেমন- আইডেন্টিটি অপারেটর এবং মেম্বারশিপ অপারেটর। নিম্নে এগুলো উদাহরণসহ আলোচনা করা হলোঃ


আইডেন্টিটি অপারেটর

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

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

পাইথনে আইডেন্টিটি অপারেটর
অপারেটর অর্থ উদাহরণ
is অপারেনড আইডেন্টিকাল হলে True হবে(একই অবজেক্টকে রেফার করে)। x is True
is not অপারেনড আইডেন্টিকাল না হলে True (একই অবজেক্টকে রেফার করে না) হবে। x is not True

উদাহরণঃ পাইথনে আইডেন্টিকাল অপারেটর

x1 = 5
y1 = 5
x2 = 'Hello'
y2 = 'Hello'
x3 = [1,2,3]
y3 = [1,2,3]

print(x1 is not y1)
# Output: False

print(x2 is y2)
# Output: True

print(x3 is y3)
# Output: False

এখানে আমরা দেখতে পাচ্ছি যে, x1 এবং y1 একই ভ্যালুর পূর্ণ সংখ্যা, সুতরাং এরা সমান এবং আইডেন্টিকাল। একইভাবে স্ট্রিং x2 এবং y2 সমান এবং আইডেন্টিকাল।

কিন্তু x3 এবং y3 হচ্ছে লিস্ট। এরা সমান কিন্তু আইডেন্টিকাল নয়। যেহেতু লিস্ট পরিবর্তনশীল তাই এরা সমান হওয়া সত্ত্বেও ইন্টারপ্রেটার এদেরকে মেমোরির বিভিন্ন জায়াগায় স্থান দেয়।


মেম্বারশিপ অপারেটর

পাইথনে in এবং not in হচ্ছে মেম্বারশিপ অপারেটর(Membership operator)। কোনো ভ্যালু বা ভ্যারিয়েবল string, list, tuple, set এবং dictionary ক্রমের মধ্যে আছে কি না যাচাই করার জন্য এগুলো ব্যবহৃত হয়।

ডিকশনারিতে ভ্যালুর পরিবর্তে কোনো কী(key)-এর উপস্থিতি আছে কিনা যাচাই করা হয়।

পাইথনে মেম্বারশিপ অপারেটর
অপারেটর অর্থ উদাহরণ
in ক্রম(sequence)-এর মধ্যে ভ্যলু/ভ্যারিয়েবল থাকলে True হবে। 5 in x
not in ক্রম(sequence)-এর মধ্যে ভ্যলু/ভ্যারিয়েবল না থাকলে True হবে। 5 not in x

উদাহরণঃ পাইথনে মেম্বারশিপ অপারেটর

x = 'Hello world'
y = {1:'a',2:'b'}

print('H' in x)
# Output: True

print('hello' not in x)
# Output: True

print(1 in y)
# Output: True

print('a' in y)
# Output: False

এখানে x এর মধ্যে 'H' আছে কিন্তু x এর মধ্যে 'hello' নাই (মনে রাখবেন, পাইথন কেস-সেন্সিটিভ)। একইভাবে ডিকশনারিতে y-এ 1 হচ্ছে কী 'a' হচ্ছে ভ্যালু। , 'a' in y এর ফলাফল False হয়।